Share via


Socket.Receive Metode

Definisi

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

buffer
Byte[]

Array jenis Byte yang merupakan lokasi penyimpanan untuk data yang diterima.

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

bufferadalah 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.

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

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

buffer
Span<Byte>

Rentang byte yang merupakan lokasi penyimpanan untuk data yang diterima.

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.

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

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

buffersadalah null.

-atau-

buffers. Hitungan adalah nol.

Terjadi kesalahan saat mencoba mengakses soket.

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

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

buffer
Byte[]

Array jenis Byte yang merupakan lokasi penyimpanan untuk data yang diterima.

size
Int32

Jumlah byte yang akan diterima.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

Mengembalikan

Jumlah byte yang diterima.

Pengecualian

bufferadalah null.

size melebihi ukuran buffer.

Terjadi kesalahan saat mencoba mengakses soket.

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

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

buffer
Span<Byte>

Rentang byte yang merupakan lokasi penyimpanan untuk data yang diterima.

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.

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

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

buffer
Byte[]

Array jenis Byte yang merupakan lokasi penyimpanan untuk data yang diterima.

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

bufferadalah 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.

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

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

buffer
Byte[]

Array jenis Byte yang merupakan lokasi penyimpanan untuk data yang diterima.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

Mengembalikan

Jumlah byte yang diterima.

Pengecualian

bufferadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

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

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

buffer
Span<Byte>

Rentang byte yang merupakan lokasi penyimpanan untuk data yang diterima.

Mengembalikan

Jumlah byte yang diterima.

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

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

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.

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

buffer
Byte[]

Array jenis Byte yang merupakan lokasi penyimpanan untuk data yang diterima.

Mengembalikan

Jumlah byte yang diterima.

Pengecualian

bufferadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

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

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

buffersadalah null.

-atau-

buffers. Hitungan adalah nol.

Terjadi kesalahan saat mencoba mengakses soket.

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

Berlaku untuk