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 中的網路追蹤。
產品 | 版本 |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |