Socket.Send Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.
Socket Telah ditutup.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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.
Socket Telah ditutup.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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
- 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
buffer
adalah null
.
offset
kurang dari 0.
-atau-
offset
lebih besar dari panjang buffer
.
-atau-
size
kurang dari 0.
-atau-
size
lebih besar dari panjang buffer
dikurangi nilai offset
parameter.
socketFlags
bukan kombinasi nilai yang valid.
-atau-
Kesalahan sistem operasi terjadi saat mengakses Socket.
Socket Telah ditutup.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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
buffers
adalah null
.
buffers
kosong.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
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
- 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
buffer
adalah null
.
offset
kurang dari 0.
-atau-
offset
lebih besar dari panjang buffer
.
-atau-
size
kurang dari 0.
-atau-
size
lebih besar dari panjang buffer
dikurangi nilai offset
parameter.
socketFlags
bukan kombinasi nilai yang valid.
-atau-
Kesalahan sistem operasi terjadi saat mengakses Socket.
Sudah Socket ditutup.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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
- size
- Int32
Jumlah byte yang akan dikirim.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
Mengembalikan
Jumlah byte yang dikirim ke Socket.
Pengecualian
buffer
adalah null
.
size
kurang dari 0 atau melebihi ukuran buffer.
socketFlags
bukan kombinasi nilai yang valid.
-atau-
Kesalahan sistem operasi terjadi saat mengakses soket.
Sudah Socket ditutup.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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
buffers
adalah null
.
buffers
kosong.
Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.
Sudah Socket ditutup.
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
buffers
adalah null
.
buffers
kosong.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
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
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
Mengembalikan
Jumlah byte yang dikirim ke Socket.
Pengecualian
buffer
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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.
Sudah Socket ditutup.
Lihat juga
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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
Mengembalikan
Jumlah byte yang dikirim ke Socket.
Pengecualian
buffer
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)