Socket.Accept 方法

定義

建立新建立連接的新 Socket

public:
 System::Net::Sockets::Socket ^ Accept();
public System.Net.Sockets.Socket Accept ();
member this.Accept : unit -> System.Net.Sockets.Socket
Public Function Accept () As Socket

傳回

新建立連接的新 Socket

例外狀況

嘗試存取通訊端時發生錯誤。

接受的通訊端並未接聽連線。 您必須在呼叫 Bind(EndPoint) 之前呼叫 Listen(Int32)Accept()

範例

下列程式碼範例接受簡單的 Socket 連線。

protected:
   void AcceptMethod( Socket^ listeningSocket )
   {
      Socket^ mySocket = listeningSocket->Accept();
   }
protected void AcceptMethod(Socket listeningSocket)
{
    Socket mySocket = listeningSocket.Accept();
}
   Protected Sub AcceptMethod(listeningSocket As Socket)
       

Dim mySocket As Socket = listeningSocket.Accept()
       
   End Sub

備註

Accept 從接聽通訊端的連接要求佇列同步擷取第一個擱置的連接要求,然後建立並傳回新的 Socket 。 您無法使用傳 Socket 回的這個 來接受來自連線佇列的任何其他連線。 不過,您可以呼叫 RemoteEndPoint 所傳 Socket 回 的 方法,以識別遠端主機的網路位址和埠號碼。

在封鎖模式中, Accept 封鎖直到連入連線嘗試排入佇列為止。 一旦接受連線,原始 Socket 會繼續將連入連線要求排入佇列,直到您關閉為止。

如果您使用非封鎖 Socket 呼叫這個方法,而且沒有將連線要求排入佇列, Accept 則會 SocketException 擲回 。 如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。 取得此程式碼之後,請參閱 Windows Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

注意

呼叫 Accept 方法之前,您必須先呼叫 Listen 方法來接聽並排入連入連線要求。

注意

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

適用於

另請參閱