Aracılığıyla paylaş


Socket.SendTo Yöntem

Tanım

Verileri belirli bir uç noktaya gönderir.

Aşırı Yüklemeler

Name Description
SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

Belirtilen sayıda veriyi belirtilen uç noktaya, arabellekte belirtilen konumdan başlayarak ve belirtilen SocketFlagskullanarak gönderir.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Belirtilen sayıda veriyi belirtilen uç noktaya, belirtilen SocketFlagskullanarak gönderir.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Belirtilen SocketFlagskullanarak verileri belirli bir uç noktaya gönderir.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Verileri belirtilen uç noktaya gönderir.

SendTo(Byte[], SocketFlags, EndPoint)

Belirtilen SocketFlagskullanarak verileri belirli bir uç noktaya gönderir.

SendTo(Byte[], EndPoint)

Verileri belirtilen uç noktaya gönderir.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Belirtilen SocketFlagskullanarak verileri belirli bir uç noktaya gönderir.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Belirtilen sayıda veriyi belirtilen uç noktaya, arabellekte belirtilen konumdan başlayarak ve belirtilen SocketFlagskullanarak gönderir.

public:
 int SendTo(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public int SendTo(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendTo : byte[] * int * int * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> int
Public Function SendTo (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, remoteEP As EndPoint) 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 .

remoteEP
EndPoint

EndPoint Verilerin hedef konumunu temsil eden.

Döndürülenler

Gönderilen bayt sayısı.

Özel durumlar

buffer, null'e eşittir.

-veya-

remoteEP, 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.

Çağrı yığınındaki bir çağıranın gerekli izinleri yok.

Örnekler

Aşağıdaki kod örneği, belirtilen uzak konağa bağlantısız bir veri birimi gönderir. Uzaklık, boyut ve SocketFlags yöntemine SendTo geçirilir.

public static void SendTo4()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo4() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint)
    s.Close()

End Sub

Açıklamalar

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, çağrısından SendToönce yöntemiyle Connect varsayılan bir uzak konak oluşturmanız gerekmez. Bunu yalnızca yöntemini çağırmak Send istiyorsanız yapmanız gerekir. çağrısından önce SendToremoteEP yöntemini çağırırsanızConnect, parametresi yalnızca bu gönderme işlemi için belirtilen varsayılan uzak konağı geçersiz kılar. Temel alınan hizmet sağlayıcısı en uygun yerel ağ adresini ve bağlantı noktası numarasını atayacağından yöntemini çağırmanız Bind da gerekmez. Atanan yerel ağ adresini ve bağlantı noktası numarasını tanımlamanız gerekiyorsa, yöntemi başarıyla tamamlandıktan sonra SendTo özelliğini kullanabilirsinizLocalEndPoint.

Bağlantısız protokoller için tasarlanmış olsa da, SendTo bağlantı odaklı protokollerle de çalışır. Bağlantı odaklı bir protokol kullanıyorsanız, önce yöntemini çağırarak Connect bir uzak konak bağlantısı kurmanız veya yöntemini kullanarak Accept gelen bağlantı isteğini kabul etmeniz gerekir. Uzak konak bağlantısı kurmaz veya kabul ederseniz, SendTo bir SocketExceptionoluşturur. Ayrıca, yöntemini çağırmadan SendTo önce bağlantısız bir protokol için varsayılan uzak konak da oluşturabilirsiniz. Bu iki durumda da parametreyi SendToremoteEP yoksayar ve yalnızca bağlı veya varsayılan uzak konağa veri gönderir.

Engelleme yuvaları, istenen bayt sayısı gönderilene kadar engellenir. Engelleyici Socket olmayan bir işlem hemen tamamlandığından, tek bir işlemde istenen tüm baytları göndermeyebilir. Uygulama istenen bayt sayısını gönderene kadar gönderilen bayt sayısını izlemek ve işlemi yeniden denemek sizin 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 SendTo 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.

Engelleme modunda bağlantısız bir protokol kullanıyorsanız, SendTo veri birimi gönderilene kadar engeller. Bir yayın adresine veri göndermek istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir. 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 SendTo bir SocketExceptionoluşturur.

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ı

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

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Belirtilen sayıda veriyi belirtilen uç noktaya, belirtilen SocketFlagskullanarak gönderir.

public:
 int SendTo(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public int SendTo(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendTo : byte[] * int * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> int
Public Function SendTo (buffer As Byte(), size As Integer, socketFlags As SocketFlags, remoteEP As EndPoint) 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 .

remoteEP
EndPoint

EndPoint Verilerin hedef konumunu temsil eden.

Döndürülenler

Gönderilen bayt sayısı.

Özel durumlar

buffer, null'e eşittir.

-veya-

remoteEP, null'e eşittir.

Belirtilen size boyutu bufferaşıyor.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Örnekler

Aşağıdaki kod örneği, belirtilen uzak konağa bağlantısız bir veri birimi gönderir. boyutu ve SocketFlags yöntemine SendTo geçirilir.

public static void SendTo3()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, msg.Length, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo3() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, msg.Length, SocketFlags.None, endPoint)
    s.Close()

End Sub

Açıklamalar

Bu aşırı yüklemede arabellek uzaklığı varsayılan olarak 0 olur. Parametre olarak socketflags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.

Bağlantısız bir protokol kullanıyorsanız, çağrısından SendToönce yöntemiyle Connect varsayılan bir uzak konak oluşturmanız gerekmez. Bunu yalnızca yöntemini çağırmak Send istiyorsanız yapmanız gerekir. çağrısından önce SendToremoteEP yöntemini çağırırsanızConnect, parametresi yalnızca bu gönderme işlemi için belirtilen varsayılan uzak konağı geçersiz kılar. Temel alınan hizmet sağlayıcısı en uygun yerel ağ adresini ve bağlantı noktası numarasını atayacağından yöntemini çağırmanız Bind da gerekmez. Atanan yerel ağ adresini ve bağlantı noktası numarasını tanımlamanız gerekiyorsa, yöntemi başarıyla tamamlandıktan sonra SendTo özelliğini kullanabilirsinizLocalEndPoint.

Bağlantısız protokoller için tasarlanmış olsa da, SendTo bağlantı odaklı protokollerle de çalışır. Bağlantı odaklı bir protokol kullanıyorsanız, önce yöntemini çağırarak Connect bir uzak konak bağlantısı kurmanız veya yöntemini kullanarak Accept gelen bağlantı isteğini kabul etmeniz gerekir. Uzak konak bağlantısı kurmaz veya kabul ederseniz, SendTo bir SocketExceptionoluşturur. Ayrıca, yöntemini çağırmadan SendTo önce bağlantısız bir protokol için varsayılan uzak konak da oluşturabilirsiniz. Bu iki durumda da parametreyi SendToremoteEP yoksayar ve yalnızca bağlı veya varsayılan uzak konağa veri gönderir.

Engelleme yuvaları, istenen bayt sayısı gönderilene kadar engellenir. Engellemeyi kaldırma Socket işlemi hemen tamamlandığından, tek bir işlemde istenen tüm baytları göndermeyebilir. 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 SendTo 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.

Engelleme modunda bağlantısız bir protokol kullanıyorsanız, SendTo veri birimi gönderilene kadar engeller. Bir yayın adresine veri göndermek istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir. Ayrıca gönderilen bayt sayısının 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 SendTo bir SocketExceptionoluşturur.

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ı

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

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Belirtilen SocketFlagskullanarak verileri belirli bir uç noktaya gönderir.

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

Parametreler

buffer
ReadOnlySpan<Byte>

Gönderilecek verileri içeren bayt aralığı.

socketFlags
SocketFlags

Verileri gönderirken kullanılacak değerlerin bit düzeyinde birleşimi SocketFlags .

socketAddress
SocketAddress

SocketAddress Verilerin hedefini temsil eden.

Döndürülenler

Gönderilen bayt sayısı.

Özel durumlar

socketAddress, null'e eşittir.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Şunlara uygulanır

SendTo(ReadOnlySpan<Byte>, EndPoint)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Verileri belirtilen uç noktaya gönderir.

public:
 int SendTo(ReadOnlySpan<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public int SendTo(ReadOnlySpan<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendTo : ReadOnlySpan<byte> * System.Net.EndPoint -> int
Public Function SendTo (buffer As ReadOnlySpan(Of Byte), remoteEP As EndPoint) As Integer

Parametreler

buffer
ReadOnlySpan<Byte>

Gönderilecek verileri içeren bayt aralığı.

remoteEP
EndPoint

EndPoint Verilerin hedefini temsil eden.

Döndürülenler

Gönderilen bayt sayısı.

Özel durumlar

remoteEP, null'e eşittir.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Şunlara uygulanır

SendTo(Byte[], SocketFlags, EndPoint)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Belirtilen SocketFlagskullanarak verileri belirli bir uç noktaya gönderir.

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

Parametreler

buffer
Byte[]

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

socketFlags
SocketFlags

Değerlerin bit düzeyinde birleşimi SocketFlags .

remoteEP
EndPoint

EndPoint Verilerin hedef konumunu temsil eden.

Döndürülenler

Gönderilen bayt sayısı.

Özel durumlar

buffer, null'e eşittir.

-veya-

remoteEP, null'e eşittir.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Örnekler

Aşağıdaki kod örneği, belirtilen uzak konağa bağlantısız bir veri birimi gönderir. SocketFlags yöntemine SendTo geçirilir.

public static void SendTo2()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo2() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, SocketFlags.None, endPoint)
    s.Close()

End Sub

Açıklamalar

Bu aşırı yüklemede, arabellek uzaklığı varsayılan olarak 0'a, gönderilecek bayt sayısı ise boyutuna buffergöre belirlenir. Parametre olarak socketflags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.

Bağlantısız bir protokol kullanıyorsanız, çağrısından SendToönce yöntemiyle Connect varsayılan bir uzak konak oluşturmanız gerekmez. Bunu yalnızca yöntemini çağırmak Send istiyorsanız yapmanız gerekir. çağrısından önce SendToremoteEP yöntemini çağırırsanızConnect, parametresi yalnızca bu gönderme işlemi için belirtilen varsayılan uzak konağı geçersiz kılar. Temel alınan hizmet sağlayıcısı en uygun yerel ağ adresini ve bağlantı noktası numarasını atayacağından yöntemini çağırmanız Bind da gerekmez. Atanan yerel ağ adresini ve bağlantı noktası numarasını tanımlamanız gerekiyorsa, yöntemi başarıyla tamamlandıktan sonra SendTo özelliğini kullanabilirsinizLocalEndPoint.

Bağlantısız protokoller için tasarlanmış olsa da, SendTo bağlantı odaklı protokollerle de çalışır. Bağlantı odaklı bir protokol kullanıyorsanız, önce yöntemini çağırarak Connect bir uzak konak bağlantısı kurmanız veya yöntemini kullanarak Accept gelen bağlantı isteğini kabul etmeniz gerekir. Uzak konak bağlantısı kurmaz veya kabul ederseniz, SendTo bir SocketExceptionoluşturur. Ayrıca, yöntemini çağırmadan SendTo önce bağlantısız bir protokol için varsayılan uzak konak da oluşturabilirsiniz. Bu iki durumda da parametreyi SendToremoteEP yoksayar ve yalnızca bağlı veya varsayılan uzak konağa veri gönderir.

Engelleme yuvaları, içindeki istenen tüm baytlar buffer gönderilene kadar engeller. Engellemeyi kaldırma Socket işlemi hemen tamamlandığından içindeki tüm baytları buffergöndermeyebilir. Uygulama içindeki tüm baytları gönderene kadar gönderilen bayt sayısını izlemek ve işlemi yeniden denemek uygulamanızın sorumluluğundadır buffer. 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 SendTo 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.

Engelleme modunda bağlantısız bir protokol kullanıyorsanız, SendTo veri birimi gönderilene kadar engeller. Bir yayın adresine veri göndermek istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir. Ayrıca gönderilen bayt sayısının 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 SendTo bir SocketExceptionoluşturur.

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ı

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

SendTo(Byte[], EndPoint)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Verileri belirtilen uç noktaya gönderir.

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

Parametreler

buffer
Byte[]

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

remoteEP
EndPoint

EndPoint Verilerin hedefini temsil eden.

Döndürülenler

Gönderilen bayt sayısı.

Özel durumlar

buffer, null'e eşittir.

-veya-

remoteEP, null'e eşittir.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Örnekler

Aşağıdaki kod örneği, belirtilen uzak konağa bağlantısız bir veri birimi gönderir.

public static void SendTo1()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, endPoint);
    s.Close();
}
Public Shared Sub SendTo1() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, endPoint)
    s.Close()

End Sub

Açıklamalar

Bu aşırı yüklemede arabellek uzaklığı varsayılan olarak 0'a, gönderilecek bayt sayısı parametrenin buffer boyutuna ve SocketFlags değer de varsayılan olarak 0'a ayarlı olur.

Bağlantısız bir protokol kullanıyorsanız, çağrısından SendToönce yöntemiyle Connect varsayılan bir uzak konak oluşturmanız gerekmez. Bunu yalnızca yöntemini çağırmak Send istiyorsanız yapmanız gerekir. çağrısından önce SendToremoteEP yöntemini çağırırsanızConnect, parametresi yalnızca bu gönderme işlemi için belirtilen varsayılan uzak konağı geçersiz kılar. Temel alınan hizmet sağlayıcısı en uygun yerel ağ adresini ve bağlantı noktası numarasını atayacağından yöntemini çağırmanız Bind da gerekmez. Atanan yerel ağ adresini ve bağlantı noktası numarasını tanımlamanız gerekiyorsa, yöntemi başarıyla tamamlandıktan sonra SendTo özelliğini kullanabilirsinizLocalEndPoint.

Bağlantısız protokoller için tasarlanmış olsa da, SendTo bağlantı odaklı protokollerle de çalışır. Bağlantı odaklı bir protokol kullanıyorsanız, önce yöntemini çağırarak Connect bir uzak konak bağlantısı kurmanız veya yöntemini kullanarak Accept gelen bağlantı isteğini kabul etmeniz gerekir. Uzak konak bağlantısı kurmaz veya kabul ederseniz, SendTo bir SocketExceptionoluşturur. Ayrıca, yöntemini çağırmadan SendTo önce bağlantısız bir protokol için varsayılan uzak konak da oluşturabilirsiniz. Bu iki durumda da parametreyi SendToremoteEP yoksayar ve yalnızca bağlı veya varsayılan uzak konağa veri gönderir.

Engelleme yuvaları, arabellekteki tüm baytlar gönderilene kadar engeller. Engellemeyi kaldırma Socket işlemi hemen tamamlandığından içindeki tüm baytları buffergöndermeyebilir. Uygulama içindeki tüm baytları gönderene kadar gönderilen bayt sayısını izlemek ve işlemi yeniden denemek uygulamanızın sorumluluğundadır buffer. 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 SendTo 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.

Engelleme modunda bağlantısız bir protokol kullanıyorsanız, SendTo veri birimi gönderilene kadar engeller. Bir yayın adresine veri göndermek istiyorsanız, önce yöntemini çağırmanız SetSocketOption ve yuva seçeneğini olarak SocketOptionName.Broadcastayarlamanız gerekir. Ayrıca gönderilen bayt sayısının 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 SendTo bir SocketExceptionoluşturur.

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ı

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

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Belirtilen SocketFlagskullanarak verileri belirli bir uç noktaya gönderir.

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

Parametreler

buffer
ReadOnlySpan<Byte>

Gönderilecek verileri içeren bayt aralığı.

socketFlags
SocketFlags

Değerlerin bit düzeyinde birleşimi SocketFlags .

remoteEP
EndPoint

EndPoint Verilerin hedefini temsil eden.

Döndürülenler

Gönderilen bayt sayısı.

Özel durumlar

remoteEP, null'e eşittir.

Yuvaya erişmeye çalışılırken bir hata oluştu.

Şunlara uygulanır