添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socket_flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socket_flags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
public class StateObject{ public Socket workSocket = null; public const int BUFFER_SIZE = 1024; public byte[] buffer = new byte[BUFFER_SIZE]; public StringBuilder sb = new StringBuilder(); Public Class StateObject Public workSocket As Socket = Nothing Public const BUFFER_SIZE As Integer = 1024 Public buffer(BUFFER_SIZE) As byte Public sb As New StringBuilder() End Class static void Listen_Callback( IAsyncResult^ ar ) allDone->Set(); Socket^ s = safe_cast<Socket^>(ar->AsyncState); Socket^ s2 = s->EndAccept( ar ); StateObject^ so2 = gcnew StateObject; so2->workSocket = s2; s2->BeginReceive( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None, gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so2 ); public static void Listen_Callback(IAsyncResult ar){ allDone.Set(); Socket s = (Socket) ar.AsyncState; Socket s2 = s.EndAccept(ar); StateObject so2 = new StateObject(); so2.workSocket = s2; s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,0, new AsyncCallback(Async_Send_Receive.Read_Callback), so2); Public Shared Sub Listen_Callback(ar As IAsyncResult) allDone.Set() Dim s As Socket = CType(ar.AsyncState, Socket) Dim s2 As Socket = s.EndAccept(ar) Dim so2 As New StateObject() so2.workSocket = s2 s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so2) End Sub static void Read_Callback( IAsyncResult^ ar ) StateObject^ so = safe_cast<StateObject^>(ar->AsyncState); Socket^ s = so->workSocket; int read = s->EndReceive( ar ); if ( read > 0 ) so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read ) ); s->BeginReceive( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None, gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so ); if ( so->sb->Length > 1 ) //All of the data has been read, so displays it to the console String^ strContent = so->sb->ToString(); Console::WriteLine( String::Format( "Read {0} byte from socket" + " data = {1} ", strContent->Length, strContent ) ); s->Close(); public static void Read_Callback(IAsyncResult ar){ StateObject so = (StateObject) ar.AsyncState; Socket s = so.workSocket; int read = s.EndReceive(ar); if (read > 0) { so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read)); s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, new AsyncCallback(Async_Send_Receive.Read_Callback), so); else{ if (so.sb.Length > 1) { //All of the data has been read, so displays it to the console string strContent; strContent = so.sb.ToString(); Console.WriteLine(String.Format("Read {0} byte from socket" + "data = {1} ", strContent.Length, strContent)); s.Close(); Public Shared Sub Read_Callback(ar As IAsyncResult) Dim so As StateObject = CType(ar.AsyncState, StateObject) Dim s As Socket = so.workSocket Dim read As Integer = s.EndReceive(ar) If read > 0 Then so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read)) s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so) If so.sb.Length > 1 Then 'All the data has been read, so displays it to the console Dim strContent As String strContent = so.sb.ToString() Console.WriteLine([String].Format("Read {0} byte from socket" + "data = {1} ", strContent.Length, strContent)) End If s.Close() End If End Sub

這是相容性 API。 不建議使用 APM ( Begin* End* ) 方法來進行新的開發。 請改用 Task 以 為基礎的對等專案。

您可以傳遞實作 AsyncCallback 的回呼給 BeginReceive ,以取得作業完成的通知。 請注意,如果基礎網路堆疊以同步方式完成作業,回呼將會在呼叫 BeginReceive 期間內嵌執行。 在此情況下, CompletedSynchronously 傳回 IAsyncResult 之 上的 屬性會設定為 true ,表示方法會以同步方式完成。 AsyncState 使用 的 IAsyncResult 屬性,取得傳遞至 BeginReceive 方法的狀態物件。

BeginReceive 非同步作業必須藉由呼叫 EndReceive 方法來完成。 一般而言,委派會叫用 AsyncCallback 方法。 EndReceive 將會封鎖呼叫執行緒,直到作業完成為止。

Socket 關閉 以解除擱置 BeginReceive 中的 。 Close 在非同步作業進行時呼叫 方法時,會呼叫提供給 方法的 BeginReceive 回呼。 後續呼叫 EndReceive 方法會在 .NET 7) 或 SocketException .NET 7+) 上的 (之前擲回 ObjectDisposedException (,以指出作業已取消。

如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

當該執行緒結束時,指定的執行緒所起始的所有 I/O 都會取消。 如果執行緒在作業完成之前結束,暫止的非同步作業可能會失敗。

state 是使用者定義類別的具現化。

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤

系統會針對非同步 Socket 方法快取執行內容 (安全性內容、模擬的使用者和呼叫內容) 。 在第一次使用特定內容 (特定非同步 Socket 方法、特定 Socket 實例和特定回呼) 之後,後續使用該內容將會看到效能改善。

  • AsyncCallback
  • Connect(EndPoint)
  • BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
  • 做為回呼方法,委派封送處理
  • 非同步用戶端通訊端範例
  • 非同步伺服器通訊端範例
  • public:
     IAsyncResult ^ BeginReceive(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 ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags flags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % error, AsyncCallback ^ callback, System::Object ^ state);
    public IAsyncResult? BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
    public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
    public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, out System.Net.Sockets.SocketError error, AsyncCallback callback, object state);
    member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
    member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
    Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
    Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, flags As SocketFlags, ByRef error As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

    這是相容性 API。 不建議使用 APM ( Begin* End* ) 方法來進行新的開發。 請改用 Task 以 為基礎的對等專案。

    您可以傳遞實作 AsyncCallback 的回呼給 BeginReceive ,以取得作業完成的通知。 請注意,如果基礎網路堆疊以同步方式完成作業,回呼將會在呼叫 BeginReceive 期間內嵌執行。 在此情況下, CompletedSynchronously 傳回 IAsyncResult 之 上的 屬性會設定為 true ,表示方法會以同步方式完成。 AsyncState 使用 的 IAsyncResult 屬性,取得傳遞至 BeginReceive 方法的狀態物件。

    BeginReceive 非同步作業必須藉由呼叫 EndReceive 方法來完成。 一般而言,委派會叫用 AsyncCallback 方法。 EndReceive 將會封鎖呼叫執行緒,直到作業完成為止。

    Socket 關閉 以解除擱置 BeginReceive 中的 。 Close 在非同步作業進行時呼叫 方法時,會呼叫提供給 方法的 BeginReceive 回呼。 後續呼叫 EndReceive 方法會在 .NET 7) 或 SocketException .NET 7+) 上的 (之前擲回 ObjectDisposedException (,以指出作業已取消。

    如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

    當該執行緒結束時,指定的執行緒所起始的所有 I/O 都會取消。 如果執行緒在作業完成之前結束,暫止的非同步作業可能會失敗。

    state 是使用者定義類別的具現化。

    在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤

    系統會快 Socket 取非同步方法 (安全性內容、模擬使用者和呼叫內容) 的執行內容。 在第一次使用特定內容 (特定非同步 Socket 方法、特定 Socket 實例和特定回呼) 之後,該內容的後續使用將會看到效能改善。

  • AsyncCallback
  • Connect(EndPoint)
  • BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
  • 做為回呼方法,委派封送處理
  • 非同步用戶端通訊端範例
  • 非同步伺服器通訊端範例
  • public:
     IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
    public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
    public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
    [System.CLSCompliant(false)]
    public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
    member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
    [<System.CLSCompliant(false)>]
    member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
    Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

    這是相容性 API。 不建議使用 APM ( Begin* End* ) 方法來進行新的開發。 請改用型對 Task 等專案。

    您可以傳遞實作 AsyncCallback BeginReceive 的回呼,以取得作業完成的通知。 請注意,如果基礎網路堆疊以同步方式完成作業,則會在 呼叫 BeginReceive 期間內嵌執行回呼。 在此情況下, CompletedSynchronously 傳回 IAsyncResult 的 屬性會設定為 true ,以指出方法已同步完成。 AsyncState 使用 的 IAsyncResult 屬性,取得傳遞至 BeginReceive 方法的狀態物件。

    非同步 BeginReceive 操作必須藉由呼叫 EndReceive 方法來完成。 一般而言,委派會叫 AsyncCallback 用 方法。 EndReceive 將會封鎖呼叫執行緒,直到作業完成為止。

    Socket 關閉 以解除擱置 BeginReceive 的 。 Close 在非同步作業進行時呼叫 方法時,會呼叫提供給 方法的 BeginReceive 回呼。 方法的後續呼叫 EndReceive 會在 .NET 7) 或 SocketException .NET 7+) 上的 (之前擲回 ObjectDisposedException (,以指出作業已取消。

    如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

    當該執行緒結束時,由指定執行緒起始的所有 I/O 都會取消。 如果執行緒在作業完成之前結束,暫止的非同步作業可能會失敗。

    state 是使用者定義類別的具現化。

    在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤

    系統會快 Socket 取非同步方法 (安全性內容、模擬使用者和呼叫內容) 的執行內容。 在第一次使用特定內容 (特定非同步 Socket 方法、特定 Socket 實例和特定回呼) 之後,該內容的後續使用將會看到效能改善。

  • AsyncCallback
  • Connect(EndPoint)
  • BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
  • 做為回呼方法,委派封送處理
  • 非同步用戶端通訊端範例
  • 非同步伺服器通訊端範例
  • public:
     IAsyncResult ^ BeginReceive(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? BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
    public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
    [System.CLSCompliant(false)]
    public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
    member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
    [<System.CLSCompliant(false)>]
    member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
    Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

    這是相容性 API。 不建議使用 APM ( Begin* End* ) 方法來進行新的開發。 請改用型對 Task 等專案。

    您可以傳遞實作 AsyncCallback BeginReceive 的回呼,以取得作業完成的通知。 請注意,如果基礎網路堆疊以同步方式完成作業,則會在 呼叫 BeginReceive 期間內嵌執行回呼。 在此情況下, CompletedSynchronously 傳回 IAsyncResult 的 屬性會設定為 true ,以指出方法已同步完成。 AsyncState 使用 的 IAsyncResult 屬性,取得傳遞至 BeginReceive 方法的狀態物件。

    非同步 BeginReceive 操作必須藉由呼叫 EndReceive 方法來完成。 一般而言,委派會叫 AsyncCallback 用 方法。 EndReceive 將會封鎖呼叫執行緒,直到作業完成為止。

    Socket 關閉 以解除擱置 BeginReceive 的 。 Close 在非同步作業進行時呼叫 方法時,會呼叫提供給 方法的 BeginReceive 回呼。 方法的後續呼叫 EndReceive 會在 .NET 7) 或 SocketException .NET 7+) 上的 (之前擲回 ObjectDisposedException (,以指出作業已取消。

    如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

    當該執行緒結束時,由指定執行緒起始的所有 I/O 都會取消。 如果執行緒在作業完成之前結束,暫止的非同步作業可能會失敗。

    state 是使用者定義類別的具現化。

    在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤

    系統會快 Socket 取非同步方法 (安全性內容、模擬使用者和呼叫內容) 的執行內容。 在第一次使用特定內容 (特定非同步 Socket 方法、特定 Socket 實例和特定回呼) 之後,該內容的後續使用將會看到效能改善。

  • AsyncCallback
  • Connect(EndPoint)
  • BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
  • 做為回呼方法,委派封送處理
  • 非同步用戶端通訊端範例
  • 非同步伺服器通訊端範例
  •