Socket.Send Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Verileri bağlı Socketbir öğesine gönderir.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Send(ReadOnlySpan<Byte>, SocketFlags, SocketError) |
Belirtilen SocketFlagskullanarak bağlı Socket bir öğesine veri gönderir. |
| Send(ReadOnlySpan<Byte>) |
Verileri bağlı Socketbir öğesine gönderir. |
| Send(Byte[], Int32, Int32, SocketFlags, SocketError) |
Belirtilen sayıda veriyi, belirtilen uzaklıkta başlayıp belirtilen SocketFlagsdeğerini kullanarak bağlı Socketbir öğesine gönderir. |
| Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Listedeki arabellek kümesini, belirtilen SocketFlagskullanarak bağlı Socketbir öğesine gönderir. |
| Send(Byte[], Int32, Int32, SocketFlags) |
Belirtilen sayıda veriyi, belirtilen uzaklıkta başlayıp belirtilen SocketFlagsdeğerini kullanarak bağlı Socketbir öğesine gönderir. |
| Send(Byte[], Int32, SocketFlags) |
Belirtilen sayıda veriyi, belirtilen SocketFlagskullanarak bağlı Socketbir öğesine gönderir. |
| Send(IList<ArraySegment<Byte>>) |
Listedeki arabellek kümesini bağlı Socketbir öğesine gönderir. |
| Send(IList<ArraySegment<Byte>>, SocketFlags) |
Listedeki arabellek kümesini, belirtilen SocketFlagskullanarak bağlı Socketbir öğesine gönderir. |
| Send(Byte[], SocketFlags) |
Belirtilen SocketFlagskullanarak bağlı Socket bir öğesine veri gönderir. |
| Send(ReadOnlySpan<Byte>, SocketFlags) |
Belirtilen SocketFlagskullanarak bağlı Socket bir öğesine veri gönderir. |
| Send(Byte[]) |
Verileri bağlı Socketbir öğesine gönderir. |
Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Belirtilen SocketFlagskullanarak bağlı Socket bir öğesine veri gönderir.
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
Parametreler
- buffer
- ReadOnlySpan<Byte>
Gönderilecek verileri içeren bayt aralığı.
- socketFlags
- SocketFlags
Gönderme ve alma davranışlarını belirten sabit listesi değerlerinin bit düzeyinde birleşimi.
- errorCode
- SocketError
Bu yöntem döndürdüğünde, yuva için hata kodlarını tanımlayan numaralandırma değerlerinden birini içerir.
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Açıklamalar
Sendveya Accept yönteminde Connect belirtilen uzak konağa zaman uyumlu olarak veri gönderir ve başarıyla gönderilen bayt sayısını döndürür. Send hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yükleme, göndermek istediğiniz verileri içeren bir arabellek gerektirir. Değer SocketFlags varsayılan olarak 0, arabellek uzaklığı varsayılan olarak 0'dır ve varsayılan olarak gönderilecek bayt sayısı arabellek boyutuna göre belirlenir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmıyorsanız SendTo , her çağrısından önce öğesini çağırmanız ConnectSendgerekir. ile Connectvarsayılan bir uzak konak oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece arabellekteki tüm baytlar gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send arabellekteki bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Gönderilen bayt sayısını izlemek ve uygulama arabelleğe bayt gönderene kadar işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin de garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Önemli
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Şunlara uygulanır
Send(ReadOnlySpan<Byte>)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Verileri bağlı Socketbir öğesine gönderir.
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
Parametreler
- buffer
- ReadOnlySpan<Byte>
Gönderilecek verileri içeren bayt aralığı.
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Açıklamalar
Sendveya Accept yönteminde Connect belirtilen uzak konağa zaman uyumlu olarak veri gönderir ve başarıyla gönderilen bayt sayısını döndürür. Send hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yükleme, göndermek istediğiniz verileri içeren bir arabellek gerektirir. Değer SocketFlags varsayılan olarak 0, arabellek uzaklığı varsayılan olarak 0'dır ve varsayılan olarak gönderilecek bayt sayısı arabellek boyutuna göre belirlenir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmıyorsanız SendTo , her çağrısından önce öğesini çağırmanız ConnectSendgerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece arabellekteki tüm baytlar gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send arabellekteki bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Gönderilen bayt sayısını izlemek ve uygulama arabelleğe bayt gönderene kadar işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin de garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Önemli
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Şunlara uygulanır
Send(Byte[], Int32, Int32, SocketFlags, SocketError)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Belirtilen sayıda veriyi, belirtilen uzaklıkta başlayıp belirtilen SocketFlagsdeğerini kullanarak bağlı Socketbir öğesine gönderir.
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
Parametreler
- offset
- Int32
Veri göndermeye başlamak için veri arabelleğindeki konum.
- size
- Int32
Gönderilecek bayt sayısı.
- socketFlags
- SocketFlags
Değerlerin bit düzeyinde birleşimi SocketFlags .
- errorCode
- SocketError
SocketError Yuva hatasını depolayan bir nesne.
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffer, null'e eşittir.
offset 0'dan küçüktür.
-veya-
offset , uzunluğundan bufferbüyüktür.
-veya-
size 0'dan küçüktür.
-veya-
size parametresinin buffer değeri eksi değerinden offset büyük.
socketFlags geçerli bir değer bileşimi değildir.
-veya-
öğesine erişilirken Socketbir işletim sistemi hatası oluşur.
Kapatılmış Socket .
Örnekler
Aşağıdaki kod örneği veri arabelleği, uzaklık, boyut ve SocketFlags bağlı Socketbir öğesine veri göndermek için öğesini belirtir.
// 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
Açıklamalar
Sendveya Accept yönteminde Connect belirtilen uzak konağa zaman uyumlu olarak veri gönderir ve başarıyla gönderilen bayt sayısını döndürür. Send hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yüklemede DontRoute , parametre olarak socketflags bayrağını belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect veya Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız kullanmanız SendTogerekir. kullanmıyorsanız SendTo, her çağrısı öncesinde çağrısı ConnectSendyapmanız gerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak, aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Ayrıca boyutun temel alınan hizmet sağlayıcısının paket boyutu üst sınırını aşmadığından da emin olmanız gerekir. Bunu yaparsa, veri birimi gönderilmez ve Send bir SocketExceptionoluşturur.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece istenen bayt sayısı gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send istediğiniz bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Uygulama istenen bayt sayısını gönderene kadar gönderilen bayt sayısını izlemek ve işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Uyarı
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Şunlara uygulanır
Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Listedeki arabellek kümesini, belirtilen SocketFlagskullanarak bağlı Socketbir öğesine gönderir.
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
Parametreler
- buffers
- IList<ArraySegment<Byte>>
ArraySegment<T>Gönderilecek verileri içeren türün Byte listesi.
- socketFlags
- SocketFlags
Değerlerin bit düzeyinde birleşimi SocketFlags .
- errorCode
- SocketError
SocketError Yuva hatasını depolayan bir nesne.
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffers, null'e eşittir.
buffers boş.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Açıklamalar
Bu aşırı yükleme, göndermek istediğiniz verileri içeren en az bir arabellek gerektirir. Değer SocketFlags varsayılan olarak 0'dır. Parametre olarak socketFlags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmazsanız SendTo , her çağrısından önce çağrısı ConnectSendyapmanız gerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak, aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece arabellekteki tüm baytlar gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme olmayan modda, Send arabellekteki bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Gönderilen bayt sayısını izlemek ve uygulama arabelleğe bayt gönderene kadar işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Uyarı
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Şunlara uygulanır
Send(Byte[], Int32, Int32, SocketFlags)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Belirtilen sayıda veriyi, belirtilen uzaklıkta başlayıp belirtilen SocketFlagsdeğerini kullanarak bağlı Socketbir öğesine gönderir.
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
Parametreler
- offset
- Int32
Veri göndermeye başlamak için veri arabelleğindeki konum.
- size
- Int32
Gönderilecek bayt sayısı.
- socketFlags
- SocketFlags
Değerlerin bit düzeyinde birleşimi SocketFlags .
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffer, null'e eşittir.
offset 0'dan küçüktür.
-veya-
offset , uzunluğundan bufferbüyüktür.
-veya-
size 0'dan küçüktür.
-veya-
size parametresinin buffer değeri eksi değerinden offset büyük.
socketFlags geçerli bir değer bileşimi değildir.
-veya-
öğesine erişilirken Socketbir işletim sistemi hatası oluşur.
Kapatılmış Socket .
Örnekler
Aşağıdaki kod örneği veri arabelleği, uzaklık, boyut ve SocketFlags bağlı Socketbir öğesine veri göndermek için öğesini belirtir.
// 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
Açıklamalar
Sendveya Accept yönteminde Connect belirtilen uzak konağa zaman uyumlu olarak veri gönderir ve başarıyla gönderilen bayt sayısını döndürür. Send hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yüklemede DontRoute , parametre olarak socketflags bayrağını belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect veya Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız kullanmanız SendTogerekir. kullanmıyorsanız SendTo, her çağrısı öncesinde çağrısı ConnectSendyapmanız gerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak, aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Ayrıca boyutun temel alınan hizmet sağlayıcısının paket boyutu üst sınırını aşmadığından da emin olmanız gerekir. Bunu yaparsa, veri birimi gönderilmez ve Send bir SocketExceptionoluşturur.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece istenen bayt sayısı gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send istediğiniz bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Uygulama istenen bayt sayısını gönderene kadar gönderilen bayt sayısını izlemek ve işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Uyarı
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Şunlara uygulanır
Send(Byte[], Int32, SocketFlags)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Belirtilen sayıda veriyi, belirtilen SocketFlagskullanarak bağlı Socketbir öğesine gönderir.
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
Parametreler
- size
- Int32
Gönderilecek bayt sayısı.
- socketFlags
- SocketFlags
Değerlerin bit düzeyinde birleşimi SocketFlags .
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffer, null'e eşittir.
size 0'dan küçük veya arabellek boyutunu aşıyor.
socketFlags geçerli bir değer bileşimi değildir.
-veya-
Yuvaya erişilirken bir işletim sistemi hatası oluşur.
Kapatılmış Socket .
Örnekler
Aşağıdaki kod örneği arabellekte bulunan verileri gönderir ve için SocketFlagsbelirtirNone.
// 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
Açıklamalar
Sendveya Accept yönteminde Connect oluşturulan uzak konağa zaman uyumlu olarak veri gönderir ve başarıyla gönderilen bayt sayısını döndürür. Send hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yükleme, göndermek istediğiniz verileri, göndermek istediğiniz bayt sayısını ve bit düzeyinde bir SocketFlagsbirleşimini içeren bir arabellek gerektirir. Parametre olarak socketflags bayrağını belirtirsenizDontRoute, gönderdiğiniz veriler yönlendirilmeyecek.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmazsanız SendTo , yöntemine yapılan her çağrıdan önce yöntemini çağırmanız ConnectSend gerekir. ile Connectvarsayılan bir uzak konak oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokolde, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece istenen bayt sayısı gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send istediğiniz bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Uygulama istenen bayt sayısını gönderene kadar gönderilen bayt sayısını izlemek ve işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
Boyutun temel alınan hizmet sağlayıcısının paket boyutu üst sınırını aşmadığından emin olmanız gerekir. Bunu yaparsa, veri birimi gönderilmez ve Send bir SocketExceptionoluşturur. bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Önemli
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Şunlara uygulanır
Send(IList<ArraySegment<Byte>>)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Listedeki arabellek kümesini bağlı Socketbir öğesine gönderir.
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
Parametreler
- buffers
- IList<ArraySegment<Byte>>
ArraySegment<T>Gönderilecek verileri içeren türün Byte listesi.
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffers, null'e eşittir.
buffers boş.
Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalar bölümüne bakın.
Kapatılmış Socket .
Açıklamalar
Send hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yükleme, göndermek istediğiniz verileri içeren en az bir arabellek gerektirir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmazsanız SendTo , her çağrısından önce çağrısı ConnectSendyapmanız gerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak, aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece arabellekteki tüm baytlar gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send arabellekteki bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Gönderilen bayt sayısını izlemek ve uygulama arabelleğe bayt gönderene kadar işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Uyarı
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Şunlara uygulanır
Send(IList<ArraySegment<Byte>>, SocketFlags)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Listedeki arabellek kümesini, belirtilen SocketFlagskullanarak bağlı Socketbir öğesine gönderir.
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
Parametreler
- buffers
- IList<ArraySegment<Byte>>
ArraySegment<T>Gönderilecek verileri içeren türün Byte listesi.
- socketFlags
- SocketFlags
Değerlerin bit düzeyinde birleşimi SocketFlags .
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffers, null'e eşittir.
buffers boş.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Açıklamalar
Bu aşırı yükleme, göndermek istediğiniz verileri içeren en az bir arabellek gerektirir. Değer SocketFlags varsayılan olarak 0'dır. Parametre olarak socketFlags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmazsanız SendTo , her çağrısından önce çağrısı ConnectSendyapmanız gerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak, aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece arabellekteki tüm baytlar gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme olmayan modda, Send arabellekteki bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Gönderilen bayt sayısını izlemek ve uygulama arabelleğe bayt gönderene kadar işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Uyarı
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Şunlara uygulanır
Send(Byte[], SocketFlags)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Belirtilen SocketFlagskullanarak bağlı Socket bir öğesine veri gönderir.
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
Parametreler
- socketFlags
- SocketFlags
Değerlerin bit düzeyinde birleşimi SocketFlags .
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffer, null'e eşittir.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Örnekler
Aşağıdaki kod örneği, bağlı Socketbir üzerinde veri göndermeyi gösterir.
// 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
Açıklamalar
Sendveya Accept yönteminde Connect oluşturulan uzak konağa zaman uyumlu olarak veri gönderir ve başarıyla gönderilen bayt sayısını döndürür. Send yöntemi hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yükleme, göndermek istediğiniz verileri içeren bir arabelleğe ve bit düzeyinde bir bileşimine SocketFlagsihtiyaç duyar. Arabellek uzaklığı varsayılan olarak 0'dır ve gönderilecek bayt sayısı varsayılan olarak arabelleğin boyutuna göre belirlenir. Parametre değeri olarak socketflags bayrağını belirtirsenizDontRoute, gönderdiğiniz veriler yönlendirilmeyecek.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmazsanız SendTo , her çağrısından önce yöntemini çağırmanız ConnectSendgerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak, aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece arabellekteki tüm baytlar gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send arabellekteki bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Uygulama istenen bayt sayısını gönderene kadar gönderilen bayt sayısını izlemek ve işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
Arabelleğinizin boyutunun temel alınan hizmet sağlayıcısının en büyük paket boyutunu aşmadığından emin olmanız gerekir. Bunu yaparsa, veri birimi gönderilmez ve Send bir SocketExceptionoluşturur. bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Uyarı
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Şunlara uygulanır
Send(ReadOnlySpan<Byte>, SocketFlags)
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Belirtilen SocketFlagskullanarak bağlı Socket bir öğesine veri gönderir.
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
Parametreler
- buffer
- ReadOnlySpan<Byte>
Gönderilecek verileri içeren bayt aralığı.
- socketFlags
- SocketFlags
Gönderme ve alma davranışlarını belirten sabit listesi değerlerinin bit düzeyinde birleşimi.
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
Şunlara uygulanır
Send(Byte[])
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
- Kaynak:
- Socket.cs
Verileri bağlı Socketbir öğesine gönderir.
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
Parametreler
Döndürülenler
öğesine gönderilen Socketbayt sayısı.
Özel durumlar
buffer, null'e eşittir.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Örnekler
Aşağıdaki kod örneği, bağlı Socketbir üzerinde veri göndermeyi gösterir.
// 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
Açıklamalar
Sendveya Accept yönteminde Connect belirtilen uzak konağa zaman uyumlu olarak veri gönderir ve başarıyla gönderilen bayt sayısını döndürür. Send hem bağlantı odaklı hem de bağlantısız protokoller için kullanılabilir.
Bu aşırı yükleme, göndermek istediğiniz verileri içeren bir arabellek gerektirir. Değer SocketFlags varsayılan olarak 0, arabellek uzaklığı varsayılan olarak 0'dır ve varsayılan olarak gönderilecek bayt sayısı arabellek boyutuna göre belirlenir.
Bağlantısız bir protokol kullanıyorsanız, bu yöntemi çağırmadan önce çağırmalısınız Connect , aksi takdirde Send bir SocketExceptionoluşturur. Bağlantı odaklı bir protokol kullanıyorsanız, uzak konak bağlantısı kurmak için veya Connect gelen bir bağlantıyı kabul etmek için komutunu kullanmanız Accept gerekir.
Bağlantısız bir protokol kullanıyorsanız ve birkaç farklı konaklara veri göndermeyi planlıyorsanız yöntemini kullanmanız SendTo gerekir. yöntemini kullanmazsanız SendTo , her çağrısından önce çağrısı ConnectSendyapmanız gerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizSendTo. Ayrıca, için başka bir çağrı yaparak, aramadan Send önce varsayılan uzak konağı da değiştirebilirsiniz Connect.
Bağlantı odaklı bir protokol kullanıyorsanız, Send kullanılarak Socket.SendTimeoutzaman aşımı ayarlanmadığı sürece arabellekteki tüm baytlar gönderilene kadar engeller. Zaman aşımı değeri aşılırsa, Send çağrı bir SocketExceptionoluşturur. Engelleme modunda, Send arabellekteki bayt sayısından daha az gönderse bile başarıyla tamamlanabilir. Gönderilen bayt sayısını izlemek ve uygulama arabelleğe bayt gönderene kadar işlemi yeniden denemek uygulamanızın sorumluluğundadır. Ayrıca, gönderdiğiniz verilerin ağda hemen görüneceğinin garantisi yoktur. Ağ verimliliğini artırmak için, temel alınan sistem önemli miktarda giden veri toplanana kadar iletimi geciktirebilir. Yöntemin Send başarıyla tamamlanması, temel alınan sistemin bir ağ gönderme işlemi için verilerinizi arabelleğe almak için yeterli alanı olduğu anlamına gelir.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Uyarı
Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sisteminde iletilecek verileri tutmak için kullanılabilir arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme engellenir.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.
Ayrıca bkz.
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)