Socket.EndSend Yöntem

Tanım

Bekleyen zaman uyumsuz göndermeyi sonlandırır.

Aşırı Yüklemeler

EndSend(IAsyncResult)

Bekleyen zaman uyumsuz göndermeyi sonlandırır.

EndSend(IAsyncResult, SocketError)

Bekleyen zaman uyumsuz göndermeyi sonlandırır.

EndSend(IAsyncResult)

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

Bekleyen zaman uyumsuz göndermeyi sonlandırır.

public:
 int EndSend(IAsyncResult ^ asyncResult);
public int EndSend (IAsyncResult asyncResult);
member this.EndSend : IAsyncResult -> int
Public Function EndSend (asyncResult As IAsyncResult) As Integer

Parametreler

asyncResult
IAsyncResult

IAsyncResult Bu zaman uyumsuz işlem için durum bilgilerini depolayan bir.

Döndürülenler

Başarılı olursa, öğesine Socketgönderilen bayt sayısı ; değilse, geçersiz Socket bir hata.

Özel durumlar

asyncResult, null değeridir.

asyncResult yöntemine BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) yapılan bir çağrı tarafından döndürülmedi.

EndSend(IAsyncResult) daha önce zaman uyumsuz gönderme için çağrıldı.

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

-veya-

Yalnızca .NET 7+ : Socket kapatıldı.

.NET Framework, .NET Core ve .NET 5-6: Socket kapatıldı.

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.

EndSend tarafından BeginSendbaşlatılan işlemi tamamlar. Eşleşen BeginSend çağrı tarafından oluşturulan öğesini IAsyncResult geçirmeniz gerekir.

Bağlantısız bir protokol kullanıyorsanız, EndSend veri birimi gönderilene kadar engeller. Bağlantı odaklı bir protokol kullanıyorsanız, EndSend arabelleğin bir bölümü gönderilene kadar engeller. 'den EndSend dönüş değeri arabelleğin tamamen gönderilmediğini gösteriyorsa, gönderilmemiş verileri tutmak için arabelleği değiştirerek yöntemini yeniden çağırın BeginSend .

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 BeginSend başarıyla tamamlanması, temel alınan sistemin verilerinizi ağ gönderme için arabelleğe almak için yeterli alanı olduğu anlamına gelir.

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

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.

Ayrıca bkz.

Şunlara uygulanır

EndSend(IAsyncResult, SocketError)

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

Bekleyen zaman uyumsuz göndermeyi sonlandırır.

public:
 int EndSend(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndSend (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndSend : IAsyncResult * SocketError -> int
Public Function EndSend (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer

Parametreler

asyncResult
IAsyncResult

IAsyncResult Bu zaman uyumsuz işlem için durum bilgilerini depolayan bir.

errorCode
SocketError

SocketError Yuva hatasını depolayan bir nesne.

Döndürülenler

Başarılı olursa, öğesine Socketgönderilen bayt sayısı ; değilse, geçersiz Socket bir hata.

Özel durumlar

asyncResult, null değeridir.

asyncResult yöntemine BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) yapılan bir çağrı tarafından döndürülmedi.

EndSend(IAsyncResult) daha önce zaman uyumsuz gönderme için çağrıldı.

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

-veya-

Yalnızca .NET 7+ : Socket kapatıldı.

.NET Framework, .NET Core ve .NET 5-6: Socket kapatıldı.

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.

EndSend tarafından BeginSendbaşlatılan işlemi tamamlar. Eşleşen BeginSend çağrı tarafından oluşturulan öğesini IAsyncResult geçirmeniz gerekir.

Bağlantısız bir protokol kullanıyorsanız, EndSend veri birimi gönderilene kadar engeller. Bağlantı odaklı bir protokol kullanıyorsanız, EndSend arabelleğin bir bölümü gönderilene kadar engeller. 'den EndSend dönüş değeri arabelleğin tamamen gönderilmediğini gösteriyorsa, gönderilmemiş verileri tutmak için arabelleği değiştirerek yöntemini yeniden çağırın BeginSend .

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 BeginSend başarıyla tamamlanması, temel alınan sistemin verilerinizi ağ gönderme için arabelleğe almak için yeterli alanı olduğu anlamına gelir.

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

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.

Ayrıca bkz.

Şunlara uygulanır