Socket.Receive Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menerima data dari terikat Socket.
Overload
Receive(Byte[], Int32, Int32, SocketFlags, SocketError) |
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags. |
Receive(Span<Byte>, SocketFlags, SocketError) |
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags. |
Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Menerima data dari terikat Socket ke dalam daftar buffer penerima, menggunakan yang ditentukan SocketFlags. |
Receive(Byte[], Int32, SocketFlags) |
Menerima jumlah byte data yang ditentukan dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags. |
Receive(Span<Byte>, SocketFlags) |
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags. |
Receive(Byte[], Int32, Int32, SocketFlags) |
Menerima jumlah byte yang ditentukan dari terikat Socket ke dalam posisi offset yang ditentukan dari buffer penerima, menggunakan yang ditentukan SocketFlags. |
Receive(Byte[], SocketFlags) |
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags. |
Receive(Span<Byte>) |
Menerima data dari terikat Socket ke dalam buffer penerima. |
Receive(IList<ArraySegment<Byte>>) |
Menerima data dari terikat Socket ke dalam daftar buffer penerima. |
Receive(Byte[]) |
Menerima data dari terikat Socket ke dalam buffer penerima. |
Receive(IList<ArraySegment<Byte>>, SocketFlags) |
Menerima data dari terikat Socket ke dalam daftar buffer penerima, menggunakan yang ditentukan SocketFlags. |
Receive(Byte[], Int32, Int32, SocketFlags, SocketError)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parameter
- offset
- Int32
Posisi dalam buffer
parameter untuk menyimpan data yang diterima.
- size
- Int32
Jumlah byte yang akan diterima.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
- errorCode
- SocketError
Objek SocketError yang menyimpan kesalahan soket.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
buffer
adalah null
.
offset
kurang dari 0.
-atau-
offset
lebih besar dari panjang buffer
.
-atau-
size
kurang dari 0.
-atau-
size
lebih besar dari panjang buffer
dikurangi nilai offset
parameter.
Socket Telah ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Keterangan
Metode membaca Receive data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Jika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia di buffer tumpukan protokol, Receive metode akan segera selesai dan melempar SocketException. Terjadi kesalahan saat mencoba mengakses soket. Lihat Keterangan di bawah ini. Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga jumlah byte yang ditentukan oleh parameter ukuran. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(Span<Byte>, SocketFlags, SocketError)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive (Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parameter
- socketFlags
- SocketFlags
Kombinasi bitwise dari nilai enumerasi yang menentukan perilaku kirim dan terima.
- errorCode
- SocketError
Ketika metode ini kembali, berisi salah satu nilai enumerasi yang menentukan kode kesalahan untuk soket.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Keterangan
Metode membaca Receive data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini hanya mengharuskan Anda untuk menyediakan buffer penerima. Offset buffer default ke 0, ukuran default ke panjang parameter buffer, dan SocketFlags nilai default ke None.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Ketika nilai batas waktu terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia di buffer tumpukan protokol, Receive metode akan segera selesai dan melempar SocketException. Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam daftar buffer penerima, menggunakan yang ditentukan SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parameter
- buffers
- IList<ArraySegment<Byte>>
Daftar ArraySegment<T>jenis Byte yang berisi data yang diterima.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
- errorCode
- SocketError
Objek SocketError yang menyimpan kesalahan soket.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
Keterangan
Metode ini membaca data ke buffers
dalam parameter dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini mengharuskan Anda menyediakan satu atau beberapa buffer penerima. Nilai SocketFlags default ke None.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari koneksi host jarak jauh yang dibuat dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Jika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia di buffer tumpukan protokol, Receive metode akan segera selesai dan melempar SocketException. Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi ,Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffers
parameter, buffers
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(Byte[], Int32, SocketFlags)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima jumlah byte data yang ditentukan dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer
Parameter
- size
- Int32
Jumlah byte yang akan diterima.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
buffer
adalah null
.
size
melebihi ukuran buffer
.
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Contoh
Berikut ini menerima data yang ditemukan ke dalam buffer
, dan menentukan None untuk SocketFlags.
// Receive the host home page content and loop until all the data is received.
Int32 bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None );
strRetPage = "Default HTML page on ";
strRetPage->Concat( server, ":\r\n", ASCII->GetString( RecvBytes, 0, bytes ) );
while ( bytes > 0 )
{
bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None );
strRetPage->Concat( ASCII->GetString( RecvBytes, 0, bytes ) );
}
// Receive the host home page content and loop until all the data is received.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = "Default HTML page on " + server + ":\r\n";
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while (bytes > 0)
{
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
}
' Receive the host home page content and loop until all the data is received.
'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = "Default HTML page on " + server + ":\r\n"
strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine
Dim i As Integer
While bytes > 0
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)
End While
Keterangan
Metode membaca Receive data ke buffer
dalam parameter dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini hanya mengharuskan Anda untuk menyediakan buffer penerima, jumlah byte yang ingin Anda terima, dan yang diperlukan SocketFlags.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Jika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia di buffer tumpukan protokol, Receive Metode ini akan segera selesai dan melempar SocketException. Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Saat Available bukan nol, coba lagi operasi terima Anda.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga jumlah byte yang ditentukan oleh size
parameter . Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(Span<Byte>, SocketFlags)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags) As Integer
Parameter
- socketFlags
- SocketFlags
Kombinasi bitwise dari nilai enumerasi yang menentukan perilaku kirim dan terima.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Keterangan
Metode membaca Receive data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini hanya mengharuskan Anda untuk menyediakan buffer penerima. Offset buffer default ke 0, ukuran default ke panjang parameter buffer, dan SocketFlags nilai default ke None.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Ketika nilai batas waktu terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia di buffer tumpukan protokol, Receive metode akan segera selesai dan melempar SocketException. Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang, dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(Byte[], Int32, Int32, SocketFlags)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima jumlah byte yang ditentukan dari terikat Socket ke dalam posisi offset yang ditentukan dari buffer penerima, menggunakan yang ditentukan SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer
Parameter
- offset
- Int32
Lokasi di buffer
untuk menyimpan data yang diterima.
- size
- Int32
Jumlah byte yang akan diterima.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
buffer
adalah null
.
offset
kurang dari 0.
-atau-
offset
lebih besar dari panjang buffer
.
-atau-
size
kurang dari 0.
-atau-
size
lebih besar dari panjang buffer
dikurangi nilai offset
parameter.
socketFlags
bukan kombinasi nilai yang valid.
-atau-
Properti LocalEndPoint tidak disetel.
-atau-
Kesalahan sistem operasi terjadi saat mengakses Socket.
Sudah Socket ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Contoh
Contoh kode berikut menentukan buffer data, offset, ukuran, dan bendera soket sebelum menerima data pada yang tersambung Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
int SendReceiveTest4( Socket^ server )
{
array<Byte>^ msg = Encoding::UTF8->GetBytes( "This is a test" );
array<Byte>^ bytes = gcnew array<Byte>(256);
try
{
// Blocks until send returns.
int byteCount = server->Send( msg, 0, msg->Length, SocketFlags::None );
Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() );
// Get reply from the server.
byteCount = server->Receive( bytes, 0, server->Available,
SocketFlags::None );
if ( byteCount > 0 )
{
Console::WriteLine( Encoding::UTF8->GetString( bytes ) );
}
}
catch ( SocketException^ e )
{
Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() );
return (e->ErrorCode);
}
return 0;
}
// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest4
Keterangan
Metode membaca Receive data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Jika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia dalam buffer tumpukan protokol, Receive metode akan segera selesai dan melempar .SocketException Terjadi kesalahan saat mencoba mengakses soket. Lihat Keterangan di bawah ini. Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga jumlah byte yang ditentukan oleh parameter ukuran. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(Byte[], SocketFlags)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam buffer penerima, menggunakan SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), socketFlags As SocketFlags) As Integer
Parameter
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
buffer
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Contoh
Contoh kode berikut menentukan buffer data, dan SocketFlags untuk menerima data pada yang tersambung Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
int SendReceiveTest2( Socket^ server )
{
array<Byte>^ msg = Encoding::UTF8->GetBytes( "This is a test" );
array<Byte>^ bytes = gcnew array<Byte>(256);
try
{
// Blocks until send returns.
int byteCount = server->Send( msg, SocketFlags::None );
Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() );
// Get reply from the server.
byteCount = server->Receive( bytes, SocketFlags::None );
if ( byteCount > 0 )
{
Console::WriteLine( Encoding::UTF8->GetString( bytes ) );
}
}
catch ( SocketException^ e )
{
Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() );
return (e->ErrorCode);
}
return 0;
}
// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest2
Keterangan
Metode membaca Receive data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini hanya mengharuskan Anda untuk menyediakan buffer penerima dan yang diperlukan SocketFlags. Offset buffer default ke 0, dan ukuran default ke panjang parameter byte.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia dalam buffer tumpukan protokol, Receive metode akan segera selesai dan melempar .SocketException Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Saat Available bukan nol, coba lagi operasi terima Anda.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(Span<Byte>)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam buffer penerima.
public:
int Receive(Span<System::Byte> buffer);
public int Receive (Span<byte> buffer);
member this.Receive : Span<byte> -> int
Public Function Receive (buffer As Span(Of Byte)) As Integer
Parameter
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Keterangan
Metode membaca Receive data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini hanya mengharuskan Anda untuk menyediakan buffer penerima. Offset buffer default ke 0, ukuran default ke panjang parameter buffer, dan SocketFlags nilai default ke None.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Ketika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia dalam buffer tumpukan protokol, Receive metode akan segera selesai dan melempar SocketException. Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang, dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(IList<ArraySegment<Byte>>)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam daftar buffer penerima.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte))) As Integer
Parameter
- buffers
- IList<ArraySegment<Byte>>
Daftar ArraySegment<T>jenis Byte yang berisi data yang diterima.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
Parameternya buffer
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
Keterangan
Metode ini membaca data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini mengharuskan Anda menyediakan satu atau beberapa buffer penerima.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari koneksi host jarak jauh yang dibuat dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Jika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia dalam buffer tumpukan protokol, Receive metode akan segera selesai dan melempar .SocketException Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffers
parameter, buffers
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Berlaku untuk
Receive(Byte[])
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam buffer penerima.
public:
int Receive(cli::array <System::Byte> ^ buffer);
public int Receive (byte[] buffer);
member this.Receive : byte[] -> int
Public Function Receive (buffer As Byte()) As Integer
Parameter
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
buffer
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
Penelepon dalam tumpukan panggilan tidak memiliki izin yang diperlukan.
Contoh
Contoh kode berikut menerima data pada yang tersambung Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer.
int SendReceiveTest1( Socket^ server )
{
array<Byte>^ msg = Encoding::UTF8->GetBytes( "This is a test" );
array<Byte>^ bytes = gcnew array<Byte>(256);
try
{
// Blocks until send returns.
int byteCount = server->Send( msg );
Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() );
// Get reply from the server.
byteCount = server->Receive( bytes );
if ( byteCount > 0 )
{
Console::WriteLine( Encoding::UTF8->GetString( bytes ) );
}
}
catch ( SocketException^ e )
{
Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() );
return ( e->ErrorCode );
}
return 0;
}
// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int i = server.Send(msg);
Console.WriteLine("Sent {0} bytes.", i);
// Get reply from the server.
i = server.Receive(bytes);
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim i As Integer = server.Send(msg)
Console.WriteLine("Sent {0} bytes.", i)
' Get reply from the server.
i = server.Receive(bytes)
Console.WriteLine(Encoding.UTF8.GetString(bytes))
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest1
Keterangan
Metode membaca Receive data ke dalam parameter buffer dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil Receive dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini hanya mengharuskan Anda untuk menyediakan buffer penerima. Offset buffer default ke 0, ukuran default ke panjang parameter buffer, dan SocketFlags nilai default ke None.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari host jarak jauh yang ditetapkan dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Jika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia dalam buffer tumpukan protokol, Receive metode akan segera selesai dan melempar .SocketException Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffer
parameter, buffer
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Berlaku untuk
Receive(IList<ArraySegment<Byte>>, SocketFlags)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Menerima data dari terikat Socket ke dalam daftar buffer penerima, menggunakan SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer
Parameter
- buffers
- IList<ArraySegment<Byte>>
Daftar ArraySegment<T>jenis Byte yang berisi data yang diterima.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
Mengembalikan
Jumlah byte yang diterima.
Pengecualian
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
Contoh
Contoh kode berikut menunjukkan cara menerima data pada yang tersambung Socket.
// Build the buffers for the receive.
List<ArraySegment<Byte> >^ receiveBuffers =
gcnew List<ArraySegment<Byte> >(2);
array<Byte>^ bigBuffer = gcnew array<Byte>(1024);
// Specify the first buffer segment (2 bytes, starting
// at the 4th element of bigBuffer)
receiveBuffers->Add(ArraySegment<Byte>(bigBuffer, 4, 2));
// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
receiveBuffers->Add(
ArraySegment<Byte>(bigBuffer, 20, 500));
tcpSocket->Receive(receiveBuffers);
Console::WriteLine("{0}",
asciiEncoding->GetString(bigBuffer));
// Build the buffers for the receive.
List<ArraySegment<byte>> recvBuffers =
new List<ArraySegment<byte>>(2);
byte[] bigBuffer = new byte[1024];
// Specify the first buffer segment (2 bytes, starting
// at the 4th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 4, 2));
// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 20, 500));
int bytesReceived = mySocket.Receive(recvBuffers);
Console.WriteLine("{0}", ASCII.GetString(bigBuffer));
Keterangan
Metode ini membaca data ke buffers
dalam parameter dan mengembalikan jumlah byte yang berhasil dibaca. Anda dapat memanggil dari soket berorientasi koneksi dan tanpa koneksi.
Kelebihan beban ini mengharuskan Anda menyediakan satu atau beberapa buffer penerima. Nilai SocketFlags default ke None.
Jika Anda menggunakan protokol berorientasi koneksi, Anda harus memanggil Connect untuk membuat koneksi host jarak jauh, atau Accept untuk menerima koneksi masuk sebelum memanggil Receive. Metode ini Receive hanya akan membaca data yang tiba dari koneksi host jarak jauh yang dibuat dalam Connect metode atau Accept . Jika Anda menggunakan protokol tanpa koneksi, Anda juga dapat menggunakan metode .ReceiveFrom ReceiveFrom akan memungkinkan Anda untuk menerima data yang tiba dari host mana pun.
Jika tidak ada data yang tersedia untuk dibaca, Receive metode akan memblokir hingga data tersedia, kecuali nilai waktu habis ditetapkan dengan menggunakan Socket.ReceiveTimeout. Jika nilai waktu habis terlampaui, Receive panggilan akan melempar SocketException. Jika Anda berada dalam mode non-pemblokiran, dan tidak ada data yang tersedia dalam buffer tumpukan protokol, Receive metode akan segera selesai dan melempar .SocketException Anda dapat menggunakan Available properti untuk menentukan apakah data tersedia untuk dibaca. Ketika Available bukan nol, coba lagi operasi terima.
Jika Anda menggunakan berorientasi Socketkoneksi , Receive metode akan membaca data sebanyak yang tersedia, hingga ukuran buffer. Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, Receive metode akan segera selesai dan mengembalikan nol byte.
Jika Anda menggunakan tanpa Socketkoneksi , Receive akan membaca datagram antrean pertama dari alamat tujuan yang Anda tentukan dalam Connect metode . Jika datagram yang Anda terima lebih besar dari ukuran buffers
parameter, buffers
akan diisi dengan bagian pertama pesan, data berlebih hilang dan SocketException dilemparkan.
Catatan
Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.
Catatan
Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.
Lihat juga
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()