Bagikan melalui


Socket.Send Metode

Definisi

Mengirim data ke tersambung Socket.

Overload

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Mengirim data ke tersambung Socket menggunakan yang ditentukan SocketFlags.

Send(ReadOnlySpan<Byte>)

Mengirim data ke yang tersambung Socket.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Mengirim jumlah byte data yang ditentukan ke yang tersambung Socket, dimulai dari offset yang ditentukan, dan menggunakan yang ditentukan SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Mengirim set buffer dalam daftar ke tersambung Socket, menggunakan yang ditentukan SocketFlags.

Send(Byte[], Int32, Int32, SocketFlags)

Mengirim jumlah byte data yang ditentukan ke yang tersambung Socket, dimulai dari offset yang ditentukan, dan menggunakan yang ditentukan SocketFlags.

Send(Byte[], Int32, SocketFlags)

Mengirim jumlah byte data yang ditentukan ke yang tersambung Socket, menggunakan yang ditentukan SocketFlags.

Send(IList<ArraySegment<Byte>>)

Mengirim set buffer dalam daftar ke tersambung Socket.

Send(IList<ArraySegment<Byte>>, SocketFlags)

Mengirim set buffer dalam daftar ke tersambung Socket, menggunakan yang ditentukan SocketFlags.

Send(Byte[], SocketFlags)

Mengirim data ke tersambung Socket menggunakan yang ditentukan SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags)

Mengirim data ke tersambung Socket menggunakan yang ditentukan SocketFlags.

Send(Byte[])

Mengirim data ke yang tersambung Socket.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim data ke tersambung Socket menggunakan yang ditentukan SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send (ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Parameter

buffer
ReadOnlySpan<Byte>

Rentang byte yang berisi data yang akan dikirim.

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 dikirim ke Socket.

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Send secara sinkron mengirim data ke host jarak jauh yang ditentukan dalam Connect metode atau Accept dan mengembalikan jumlah byte yang berhasil dikirim. Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Kelebihan beban ini memerlukan buffer yang berisi data yang ingin Anda kirim. Nilai SocketFlags default ke 0, offset buffer default ke 0, dan jumlah byte untuk mengirim default ke ukuran buffer.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melempar SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode ini SendTo , Anda harus memanggil Connect sebelum setiap panggilan ke Send. Anda dapat menggunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga semua byte dalam buffer dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send dapat berhasil diselesaikan meskipun mengirim kurang dari jumlah byte dalam buffer. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim byte di buffer. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi sampai sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk menyangga data Anda untuk pengiriman jaringan.

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.

Penting

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan ditransmisikan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

Lihat juga

Berlaku untuk

Send(ReadOnlySpan<Byte>)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim data ke yang tersambung Socket.

public:
 int Send(ReadOnlySpan<System::Byte> buffer);
public int Send (ReadOnlySpan<byte> buffer);
member this.Send : ReadOnlySpan<byte> -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte)) As Integer

Parameter

buffer
ReadOnlySpan<Byte>

Rentang byte yang berisi data yang akan dikirim.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Send secara sinkron mengirim data ke host jarak jauh yang ditentukan dalam Connect metode atau Accept dan mengembalikan jumlah byte yang berhasil dikirim. Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Kelebihan beban ini memerlukan buffer yang berisi data yang ingin Anda kirim. Nilai SocketFlags default ke 0, offset buffer default ke 0, dan jumlah byte untuk mengirim default ke ukuran buffer.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melempar SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode ini SendTo , Anda harus memanggil Connect sebelum setiap panggilan ke Send. Anda dapat menggunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga semua byte dalam buffer dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send dapat berhasil diselesaikan meskipun mengirim kurang dari jumlah byte dalam buffer. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim byte di buffer. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi sampai sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk menyangga data Anda untuk pengiriman jaringan.

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.

Penting

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan ditransmisikan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

Lihat juga

Berlaku untuk

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim jumlah byte data yang ditentukan ke yang tersambung Socket, mulai dari offset yang ditentukan, dan menggunakan yang ditentukan SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (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 berisi data yang akan dikirim.

offset
Int32

Posisi dalam buffer data untuk mulai mengirim data.

size
Int32

Jumlah byte yang akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

errorCode
SocketError

Objek SocketError yang menyimpan kesalahan soket.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

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-

Kesalahan sistem operasi terjadi saat mengakses Socket.

Contoh

Contoh kode berikut menentukan buffer data, offset, ukuran, dan SocketFlags untuk mengirim data ke 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

Send secara sinkron mengirim data ke host jarak jauh yang ditentukan dalam Connect metode atau Accept dan mengembalikan jumlah byte yang berhasil dikirim. Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Dalam kelebihan beban ini, jika Anda menentukan DontRoute bendera sebagai socketflags parameter, data yang Anda kirim tidak akan dirutekan.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan SendTo. Jika Anda tidak menggunakan SendTo, Anda harus memanggil Connect sebelum setiap panggilan ke Send. Tidak apa-apa untuk digunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Anda juga harus yakin bahwa ukurannya tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan Send akan melempar SocketException.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga jumlah byte yang diminta dikirim, kecuali waktu habis ditetapkan dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send dapat berhasil diselesaikan meskipun mengirim kurang dari jumlah byte yang Anda minta. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim jumlah byte yang diminta. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim set buffer dalam daftar ke tersambung Socket, menggunakan yang ditentukan SocketFlags.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (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 akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

errorCode
SocketError

Objek SocketError yang menyimpan kesalahan soket.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

buffersadalah null.

buffers kosong.

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Kelebihan beban ini memerlukan setidaknya satu buffer yang berisi data yang ingin Anda kirim. Nilai SocketFlags default ke 0. Jika Anda menentukan DontRoute bendera sebagai socketFlags parameter, data yang Anda kirim tidak akan dirutekan.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode ini SendTo , Anda harus memanggil Connect sebelum setiap panggilan ke Send. Anda dapat menggunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga semua byte dalam buffer dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode non-pemblokiran, Send dapat berhasil diselesaikan meskipun mengirim kurang dari jumlah byte dalam buffer. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim byte di buffer. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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

Send(Byte[], Int32, Int32, SocketFlags)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim jumlah byte data yang ditentukan ke yang tersambung Socket, mulai dari offset yang ditentukan, dan menggunakan yang ditentukan SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer

Parameter

buffer
Byte[]

Array jenis Byte yang berisi data yang akan dikirim.

offset
Int32

Posisi dalam buffer data untuk mulai mengirim data.

size
Int32

Jumlah byte yang akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

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-

Kesalahan sistem operasi terjadi saat mengakses Socket.

Contoh

Contoh kode berikut menentukan buffer data, offset, ukuran, dan SocketFlags untuk mengirim data ke 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

Send secara sinkron mengirim data ke host jarak jauh yang ditentukan dalam Connect metode atau Accept dan mengembalikan jumlah byte yang berhasil dikirim. Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Dalam kelebihan beban ini, jika Anda menentukan DontRoute bendera sebagai socketflags parameter, data yang Anda kirim tidak akan dirutekan.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan SendTo. Jika Anda tidak menggunakan SendTo, Anda harus memanggil Connect sebelum setiap panggilan ke Send. Tidak apa-apa untuk digunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Anda juga harus yakin bahwa ukurannya tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan Send akan melempar SocketException.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga jumlah byte yang diminta dikirim, kecuali waktu habis ditetapkan dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send dapat berhasil diselesaikan meskipun mengirim kurang dari jumlah byte yang Anda minta. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim jumlah byte yang diminta. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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

Send(Byte[], Int32, SocketFlags)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim jumlah byte data yang ditentukan ke yang tersambung Socket, menggunakan SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send (byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer

Parameter

buffer
Byte[]

Array jenis Byte yang berisi data yang akan dikirim.

size
Int32

Jumlah byte yang akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

bufferadalah null.

size kurang dari 0 atau melebihi ukuran buffer.

socketFlags bukan kombinasi nilai yang valid.

-atau-

Kesalahan sistem operasi terjadi saat mengakses soket.

Contoh

Contoh kode berikut mengirimkan data yang ditemukan dalam buffer, dan menentukan None untuk SocketFlags.

// Displays sending with a connected socket
// using the overload that takes a buffer, message size, and socket flags.
int SendReceiveTest3( 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 i = server->Send( msg, msg->Length, SocketFlags::None );
      Console::WriteLine( "Sent {0} bytes.", i.ToString() );
      
      // Get reply from the server.
      int byteCount = server->Receive( bytes, 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, message size, and socket flags.
public static int SendReceiveTest3(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, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", i);

        // Get reply from the server.
        int byteCount = server.Receive(bytes, 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, message size, and socket flags.
Public Shared Function SendReceiveTest3(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, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        Dim byteCount As Integer = server.Receive(bytes, 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 'SendReceiveTest3

Keterangan

Send secara sinkron mengirim data ke host jarak jauh yang ditetapkan dalam Connect metode atau Accept dan mengembalikan jumlah byte yang berhasil dikirim. Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Kelebihan beban ini memerlukan buffer yang berisi data yang ingin Anda kirim, jumlah byte yang ingin Anda kirim, dan kombinasi bitwise dari apa pun SocketFlags. Jika Anda menentukan DontRoute bendera sebagai socketflags parameter, data yang Anda kirim tidak akan dirutekan.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode , SendTo Anda harus memanggil Connect metode sebelum setiap panggilan ke Send metode . Anda dapat menggunakan SendTo bahkan setelah Anda membuat host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Dengan protokol berorientasi koneksi, Send akan memblokir hingga jumlah byte yang diminta dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send dapat berhasil diselesaikan meskipun mengirim kurang dari jumlah byte yang Anda minta. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim jumlah byte yang diminta. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

Catatan

Anda harus memastikan bahwa ukurannya tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan Send akan melempar SocketException. 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.

Penting

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

Lihat juga

Berlaku untuk

Send(IList<ArraySegment<Byte>>)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim set buffer dalam daftar ke yang tersambung Socket.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Send (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte))) As Integer

Parameter

buffers
IList<ArraySegment<Byte>>

Daftar ArraySegment<T>jenis Byte yang berisi data yang akan dikirim.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

buffersadalah null.

buffers kosong.

Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.

Keterangan

Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Kelebihan beban ini memerlukan setidaknya satu buffer yang berisi data yang ingin Anda kirim.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode ini SendTo , Anda harus memanggil Connect sebelum setiap panggilan ke Send. Anda dapat menggunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga semua byte dalam buffer dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send mungkin berhasil diselesaikan meskipun mengirim kurang dari jumlah byte dalam buffer. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim byte di buffer. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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

Send(IList<ArraySegment<Byte>>, SocketFlags)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim set buffer dalam daftar ke tersambung Socket, menggunakan yang ditentukan SocketFlags.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Send (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Send (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 akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

buffersadalah null.

buffers kosong.

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Kelebihan beban ini memerlukan setidaknya satu buffer yang berisi data yang ingin Anda kirim. Nilai SocketFlags default ke 0. Jika Anda menentukan DontRoute bendera sebagai socketFlags parameter, data yang Anda kirim tidak akan dirutekan.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode ini SendTo , Anda harus memanggil Connect sebelum setiap panggilan ke Send. Anda dapat menggunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga semua byte dalam buffer dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode non-pemblokiran, Send dapat berhasil diselesaikan meskipun mengirim kurang dari jumlah byte dalam buffer. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim byte di buffer. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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

Send(Byte[], SocketFlags)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim data ke tersambung Socket menggunakan yang ditentukan SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send (byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), socketFlags As SocketFlags) As Integer

Parameter

buffer
Byte[]

Array jenis Byte yang berisi data yang akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

bufferadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Contoh

Contoh kode berikut menunjukkan pengiriman 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

Send secara sinkron mengirim data ke host jarak jauh yang ditetapkan dalam Connect metode atau Accept dan mengembalikan jumlah byte yang berhasil dikirim. Metode ini Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Kelebihan beban ini memerlukan buffer yang berisi data yang ingin Anda kirim dan kombinasi bitwise dari SocketFlags. Offset buffer default ke 0, dan jumlah byte untuk mengirim default ke ukuran buffer. Jika Anda menentukan DontRoute bendera sebagai socketflags nilai parameter, data yang Anda kirim tidak akan dirutekan.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode , SendTo Anda harus memanggil Connect metode sebelum setiap panggilan ke Send. Anda dapat menggunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga semua byte dalam buffer dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send mungkin berhasil diselesaikan meskipun mengirim kurang dari jumlah byte dalam buffer. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim jumlah byte yang diminta. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

Catatan

Anda harus memastikan bahwa ukuran buffer Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan Send akan melempar SocketException. 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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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

Send(ReadOnlySpan<Byte>, SocketFlags)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim data ke tersambung Socket menggunakan yang ditentukan SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send (ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags) As Integer

Parameter

buffer
ReadOnlySpan<Byte>

Rentang byte yang berisi data yang akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari nilai enumerasi yang menentukan perilaku kirim dan terima.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

Lihat juga

Berlaku untuk

Send(Byte[])

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengirim data ke tersambung Socket.

public:
 int Send(cli::array <System::Byte> ^ buffer);
public int Send (byte[] buffer);
member this.Send : byte[] -> int
Public Function Send (buffer As Byte()) As Integer

Parameter

buffer
Byte[]

Array jenis Byte yang berisi data yang akan dikirim.

Mengembalikan

Jumlah byte yang dikirim ke Socket.

Pengecualian

bufferadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Contoh

Contoh kode berikut menunjukkan pengiriman 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

Send secara sinkron mengirim data ke host jarak jauh yang ditentukan dalam Connect metode atau Accept dan mengembalikan jumlah byte yang berhasil dikirim. Send dapat digunakan untuk protokol berorientasi koneksi dan tanpa koneksi.

Kelebihan beban ini memerlukan buffer yang berisi data yang ingin Anda kirim. Nilai SocketFlags default ke 0, buffer offset default ke 0, dan jumlah byte untuk mengirim default ke ukuran buffer.

Jika Anda menggunakan protokol tanpa koneksi, Anda harus memanggil Connect sebelum memanggil metode ini, atau Send akan melemparkan SocketException. Jika Anda menggunakan protokol berorientasi koneksi, Anda harus menggunakan Connect untuk membuat koneksi host jarak jauh, atau menggunakan Accept untuk menerima koneksi masuk.

Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan metode ini SendTo . Jika Anda tidak menggunakan metode ini SendTo , Anda harus memanggil Connect sebelum setiap panggilan ke Send. Anda dapat menggunakan SendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil Send dengan melakukan panggilan lain ke Connect.

Jika Anda menggunakan protokol berorientasi koneksi, Send akan memblokir hingga semua byte dalam buffer dikirim, kecuali waktu habis diatur dengan menggunakan Socket.SendTimeout. Jika nilai waktu habis terlampaui, Send panggilan akan melempar SocketException. Dalam mode nonblocking, Send mungkin berhasil diselesaikan meskipun mengirim kurang dari jumlah byte dalam buffer. Aplikasi Anda bertanggung jawab untuk melacak jumlah byte yang dikirim dan mencoba kembali operasi sampai aplikasi mengirim byte di buffer. Juga tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang Send berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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