Share via


Socket.BeginSend Yöntem

Tanım

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

Aşırı Yüklemeler

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

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

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

public:
 IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parametreler

buffers
IList<ArraySegment<Byte>>

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

socketFlags
SocketFlags

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

callback
AsyncCallback

Temsilci AsyncCallback .

state
Object

Bu istek için durum bilgilerini içeren bir nesne.

Döndürülenler

IAsyncResult Zaman uyumsuz göndermeye başvuran bir.

Özel durumlar

buffers, null değeridir.

buffers boş.

Yalnızca .NET Framework ve .NET 5 ve öncesi: Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalar bölümüne bakın.

Açıklamalar

Önemli

Bu bir uyumluluk API'sidir. Yeni geliştirme için APM (Begin* ve End*) yöntemlerinin kullanılmasını önermiyoruz. Bunun yerine, tabanlı eşdeğerleri kullanın Task.

İşlemin tamamlandığının bildirilmesi için öğesini uygulayan AsyncCallbackBeginSend bir geri çağırma geçirebilirsiniz. Temel alınan ağ yığını işlemi zaman uyumlu bir şekilde tamamlarsa, çağrısı sırasında geri çağırmanın BeginSendsatır içinde yürütüleceğini unutmayın. Bu durumda, CompletedSynchronously döndürülen IAsyncResult üzerindeki özelliği yöntemin zaman uyumlu olarak tamamlandığını belirtmek için olarak ayarlanır true . yöntemine AsyncState geçirilen durum nesnesini almak için BeginSend özelliğini IAsyncResult kullanın.

Zaman uyumsuz BeginSend işlem yöntemi çağrılarak EndSend tamamlanmalıdır. Genellikle yöntemi temsilci tarafından çağrılır AsyncCallback . EndSend işlem tamamlanana kadar çağıran iş parçacığını engeller.

Bağlantı odaklı protokoller için tasarlanmış olsa da, BeginSend ilk olarak veya yöntemini çağırarak ConnectBeginConnect varsayılan bir uzak konak kurmanız koşuluyla bağlantısız protokoller için de çalışır. Bağlantısız bir protokol kullanıyorsanız ve verileri birkaç farklı konaklara göndermeyi planlıyorsanız kullanmanız BeginSendTogerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizBeginSendTo. Veya için başka bir çağrı ConnectBeginConnectyaparak, aramadan BeginSend önce varsayılan uzak ana bilgisayarı da değiştirebilirsiniz. Bağlantısız protokollerde, arabellek boyutunun temel alınan hizmet sağlayıcısının en büyük paket boyutunu aşmadığından da emin olmanız gerekir. Bunu yaparsa, veri birimi gönderilmez ve BeginSend bir SocketExceptionoluşturur.

Parametre olarak socketflags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecek.

Not

bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode .

Not

Belirli bir iş parçacığı tarafından başlatılan tüm G/Ç, iş parçacığı çıktığında iptal edilir. İşlem tamamlanmadan önce iş parçacığından çıkılabilirse bekleyen zaman uyumsuz bir işlem başarısız olabilir.

Not

state , kullanıcı tanımlı bir sınıfın örneğidir.

Not

Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sistemi içinde iletilecek verileri tutacak arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme işlemi engellenir.

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Not

Yürütme bağlamı (güvenlik bağlamı, kimliğine bürünülen kullanıcı ve çağıran bağlam) zaman uyumsuz Socket yöntemler için önbelleğe alınır. Belirli bir bağlamın (belirli bir zaman uyumsuz Socket yöntem, belirli bir örnek ve belirli Socket bir geri çağırma) ilk kullanımından sonra, bu bağlamın sonraki kullanımları performans artışıyla karşılaşır.

Ayrıca bkz.

Şunlara uygulanır

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

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

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

public:
 IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parametreler

buffers
IList<ArraySegment<Byte>>

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

socketFlags
SocketFlags

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

errorCode
SocketError

SocketError Yuva hatasını depolayan bir nesne.

callback
AsyncCallback

Temsilci AsyncCallback .

state
Object

Bu istek için durum bilgilerini içeren bir nesne.

Döndürülenler

IAsyncResult Zaman uyumsuz göndermeye başvuran bir.

Özel durumlar

buffers, null değeridir.

buffers boş.

Yalnızca .NET Framework ve .NET 5 ve öncesi: Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalar bölümüne bakın.

Açıklamalar

Önemli

Bu bir uyumluluk API'sidir. Yeni geliştirme için APM (Begin* ve End*) yöntemlerinin kullanılmasını önermiyoruz. Bunun yerine, tabanlı eşdeğerleri kullanın Task.

İşlemin tamamlandığının bildirilmesi için öğesini uygulayan AsyncCallbackBeginSend bir geri çağırma geçirebilirsiniz. Temel alınan ağ yığını işlemi zaman uyumlu bir şekilde tamamlarsa, çağrısı sırasında geri çağırmanın BeginSendsatır içinde yürütüleceğini unutmayın. Bu durumda, CompletedSynchronously döndürülen IAsyncResult üzerindeki özelliği yöntemin zaman uyumlu olarak tamamlandığını belirtmek için olarak ayarlanır true . yöntemine AsyncState geçirilen durum nesnesini almak için BeginSend özelliğini IAsyncResult kullanın.

Zaman uyumsuz BeginSend işlem yöntemi çağrılarak EndSend tamamlanmalıdır. Genellikle yöntemi temsilci tarafından çağrılır AsyncCallback . EndSend işlem tamamlanana kadar çağıran iş parçacığını engeller.

Bağlantı odaklı protokoller için tasarlanmış olsa da, BeginSend ilk olarak veya yöntemini çağırarak ConnectBeginConnect varsayılan bir uzak konak kurmanız koşuluyla bağlantısız protokoller için de çalışır. Bağlantısız bir protokol kullanıyorsanız ve verileri birkaç farklı konaklara göndermeyi planlıyorsanız kullanmanız BeginSendTogerekir. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizBeginSendTo. Veya için başka bir çağrı ConnectBeginConnectyaparak, aramadan BeginSend önce varsayılan uzak ana bilgisayarı da değiştirebilirsiniz. Bağlantısız protokollerde, arabellek boyutunun temel alınan hizmet sağlayıcısının en büyük paket boyutunu aşmadığından da emin olmanız gerekir. Bunu yaparsa, veri birimi gönderilmez ve BeginSend bir SocketExceptionoluşturur.

Parametre olarak socketflags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecek.

Not

bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode .

Not

Belirli bir iş parçacığı tarafından başlatılan tüm G/Ç, iş parçacığı çıktığında iptal edilir. İşlem tamamlanmadan önce iş parçacığından çıkılabilirse bekleyen zaman uyumsuz bir işlem başarısız olabilir.

Not

state , kullanıcı tanımlı bir sınıfın örneğidir.

Not

Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiği anlamına gelmez. Aktarım sistemi içinde iletilecek verileri tutacak arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme işlemi engellenir.

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Not

Yürütme bağlamı (güvenlik bağlamı, kimliğine bürünülen kullanıcı ve çağırma bağlamı) zaman uyumsuz Socket yöntemler için önbelleğe alınır. Belirli bir bağlamın (belirli bir zaman uyumsuz Socket yöntem, belirli bir örnek ve belirli Socket bir geri çağırma) ilk kullanımından sonra, bu bağlamın sonraki kullanımları bir performans geliştirmesi görecektir.

Ayrıca bkz.

Şunlara uygulanır

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

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

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parametreler

buffer
Byte[]

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

offset
Int32

Parametrede veri göndermeye buffer başlayabileceğiniz sıfır tabanlı konum.

size
Int32

Gönderilecek bayt sayısı.

socketFlags
SocketFlags

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

callback
AsyncCallback

Temsilci AsyncCallback .

state
Object

Bu istek için durum bilgilerini içeren bir nesne.

Döndürülenler

IAsyncResult Zaman uyumsuz göndermeye başvuran bir.

Özel durumlar

buffer, null değeridir.

Yalnızca .NET Framework ve .NET 5 ve öncesi: Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalar bölümüne bakın.

offset 0'dan küçüktür.

-veya-

offset uzunluğundan küçüktür buffer.

-veya-

size 0'dan küçüktür.

-veya-

size parametresinin değerinden bufferoffset daha uzundur.

Açıklamalar

Önemli

Bu bir uyumluluk API'sidir. Yeni geliştirme için APM (Begin* ve End*) yöntemlerini kullanmanızı önermiyoruz. Bunun yerine tabanlı eşdeğerleri kullanın Task.

İşlemin AsyncCallbackBeginSend tamamlanması hakkında bildirim almak için uygulamasına uygulanan bir geri çağırma geçirebilirsiniz. Temel alınan ağ yığını işlemi zaman uyumlu bir şekilde tamamlarsa, çağrısı sırasında geri çağırmanın BeginSendsatır içinde yürütüleceğini unutmayın. Bu durumda, döndürülen IAsyncResult üzerindeki özelliği yöntemin CompletedSynchronously zaman uyumlu olarak tamamlandığını belirtmek için olarak ayarlanırtrue. yöntemine AsyncState geçirilen durum nesnesini almak için BeginSend özelliğini IAsyncResult kullanın.

Zaman uyumsuz BeginSend işlem yöntemi çağrılarak EndSend tamamlanmalıdır. Genellikle, yöntemi temsilci tarafından çağrılır AsyncCallback . EndSend işlem tamamlanana kadar çağıran iş parçacığını engeller.

Bağlantı odaklı protokoller için tasarlanmış olsa da, BeginSend ilk olarak veya yöntemini çağırarak ConnectBeginConnect varsayılan uzak konağı kurmanız koşuluyla bağlantısız protokoller için de çalışır. Bağlantısız bir protokol kullanıyorsanız ve verileri birkaç farklı konaklara göndermeyi planlıyorsanız kullanmanız gerekir BeginSendTo. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizBeginSendTo. Veya için başka bir çağrı ConnectBeginConnectyaparak, aramadan BeginSend önce varsayılan uzak konağı da değiştirebilirsiniz. Bağlantısız protokollerde, arabelleğinizin boyutunun 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. Gönderiliyorsa, veri birimi gönderilmez ve BeginSend bir SocketExceptionoluşturur.

Parametre olarak socketflags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.

Not

bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode .

Not

Belirli bir iş parçacığı tarafından başlatılan tüm G/Ç, iş parçacığı çıktığında iptal edilir. İş parçacığı işlem tamamlanmadan önce çıkarsa bekleyen zaman uyumsuz bir işlem başarısız olabilir.

Not

state , kullanıcı tanımlı bir sınıfın örneğidir.

Not

Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiğine işaret etmez. Aktarım sistemi içinde aktarılacak verileri tutacak arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme işlemi engellenir.

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Not

Yürütme bağlamı (güvenlik bağlamı, kimliğine bürünülen kullanıcı ve çağırma bağlamı) zaman uyumsuz Socket yöntemler için önbelleğe alınır. Belirli bir bağlamın (belirli bir zaman uyumsuz Socket yöntem, belirli bir örnek ve belirli Socket bir geri çağırma) ilk kullanımından sonra, bu bağlamın sonraki kullanımları bir performans geliştirmesi görecektir.

Ayrıca bkz.

Şunlara uygulanır

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

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

Verileri bağlı Socketbir öğesine zaman uyumsuz olarak gönderir.

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parametreler

buffer
Byte[]

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

offset
Int32

Parametrede veri göndermeye buffer başlayabileceğiniz sıfır tabanlı 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.

callback
AsyncCallback

Temsilci AsyncCallback .

state
Object

Bu istek için durum bilgilerini içeren bir nesne.

Döndürülenler

IAsyncResult Zaman uyumsuz göndermeye başvuran bir.

Özel durumlar

buffer, null değeridir.

Yalnızca .NET Framework ve .NET 5 ve öncesi: Yuvaya erişmeye çalışılırken bir hata oluştu. Aşağıdaki açıklamalar bölümüne bakın.

offset 0'dan küçüktür.

-veya-

offset uzunluğundan küçüktür buffer.

-veya-

size 0'dan küçüktür.

-veya-

size parametresinin değerinden bufferoffset daha uzundur.

Açıklamalar

Önemli

Bu bir uyumluluk API'sidir. Yeni geliştirme için APM (Begin* ve End*) yöntemlerini kullanmanızı önermiyoruz. Bunun yerine tabanlı eşdeğerleri kullanın Task.

İşlemin AsyncCallbackBeginSend tamamlanması hakkında bildirim almak için uygulamasına uygulanan bir geri çağırma geçirebilirsiniz. Temel alınan ağ yığını işlemi zaman uyumlu bir şekilde tamamlarsa, çağrısı sırasında geri çağırmanın BeginSendsatır içinde yürütüleceğini unutmayın. Bu durumda, döndürülen IAsyncResult üzerindeki özelliği yöntemin CompletedSynchronously zaman uyumlu olarak tamamlandığını belirtmek için olarak ayarlanırtrue. yöntemine AsyncState geçirilen durum nesnesini almak için BeginSend özelliğini IAsyncResult kullanın.

Zaman uyumsuz BeginSend işlem yöntemi çağrılarak EndSend tamamlanmalıdır. Genellikle, yöntemi temsilci tarafından çağrılır AsyncCallback . EndSend işlem tamamlanana kadar çağıran iş parçacığını engeller.

Bağlantı odaklı protokoller için tasarlanmış olsa da, BeginSend ilk olarak veya yöntemini çağırarak ConnectBeginConnect varsayılan uzak konağı kurmanız koşuluyla bağlantısız protokoller için de çalışır. Bağlantısız bir protokol kullanıyorsanız ve verileri birkaç farklı konaklara göndermeyi planlıyorsanız kullanmanız gerekir BeginSendTo. ile Connectvarsayılan uzak ana bilgisayar oluşturduktan sonra bile kullanabilirsinizBeginSendTo. Veya için başka bir çağrı ConnectBeginConnectyaparak, aramadan BeginSend önce varsayılan uzak konağı da değiştirebilirsiniz. Bağlantısız protokollerde, arabelleğinizin boyutunun 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. Gönderiliyorsa, veri birimi gönderilmez ve BeginSend bir SocketExceptionoluşturur.

Parametre olarak socketflags bayrağını DontRoute belirtirseniz, gönderdiğiniz veriler yönlendirilmeyecektir.

Not

bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode .

Not

Belirli bir iş parçacığı tarafından başlatılan tüm G/Ç, iş parçacığı çıktığında iptal edilir. İş parçacığı işlem tamamlanmadan önce çıkarsa bekleyen zaman uyumsuz bir işlem başarısız olabilir.

Not

state , kullanıcı tanımlı bir sınıfın örneğidir.

Not

Gönderme işleminin başarıyla tamamlanması, verilerin başarıyla teslim edildiğine işaret etmez. Aktarım sistemi içinde aktarılacak verileri tutacak arabellek alanı yoksa, yuva engelleyici olmayan moda yerleştirilmediği sürece gönderme işlemi engellenir.

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Not

Yürütme bağlamı (güvenlik bağlamı, kimliğine bürünülen kullanıcı ve çağırma bağlamı) zaman uyumsuz Socket yöntemler için önbelleğe alınır. Belirli bir bağlamın (belirli bir zaman uyumsuz Socket yöntem, belirli bir örnek ve belirli Socket bir geri çağırma) ilk kullanımından sonra, bu bağlamın sonraki kullanımları bir performans geliştirmesi görecektir.

Ayrıca bkz.

Şunlara uygulanır