Aracılığıyla paylaş


Socket.Send Yöntem

Tanım

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.

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.

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

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.

Ş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

buffer
Byte[]

Gönderilecek verileri içeren tür Byte dizisi.

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.

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

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

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

buffer
Byte[]

Gönderilecek verileri içeren tür Byte dizisi.

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.

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

Ş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

buffer
Byte[]

Gönderilecek verileri içeren tür Byte dizisi.

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.

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

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

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.

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

buffer
Byte[]

Gönderilecek verileri içeren tür Byte dizisi.

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.

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

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

Ayrıca bkz.

Ş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

buffer
Byte[]

Gönderilecek verileri içeren tür Byte dizisi.

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.

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

Şunlara uygulanır