Socket.Accept 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立新建立連接的新 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 錯誤碼 檔,以取得錯誤的詳細描述。
注意
在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤。