共用方式為


使用同步的伺服器通訊端

同步伺服器通訊端會暫止應用程式的執行,直到通訊端上收到連接要求。同步伺服器通訊端不適合作業中需大量利用網路的應用程式,但它們很適合簡單的網路應用程式。

在使用 BindListen 方法將 Socket 設定為要在結束點上聆聽之後,它隨即可以使用 Accept 方法來接受輸入的連接要求。應用程式會被暫止,直到呼叫 Accept 方法而收到連接要求時。

當收到連接要求時,Accept 會傳回與連接中用戶端相關聯的新 Socket 執行個體。下列範例從用戶端讀取資料、在主控台上顯示它,和回應 (Echo) 資料回到用戶端。Socket 不指定任何訊息通訊協定,所以字串 "<EOF>" 將標記訊息資料的結束。它假設名為 listener Socket 已經初始化並繫結至結束點。

Console.WriteLine("Waiting for a connection...")
Dim handler As Socket = listener.Accept()
Dim data As String = Nothing
            
While True
    bytes = New Byte(1024) {}
    Dim bytesRec As Integer = handler.Receive(bytes)
    data += Encoding.ASCII.GetString(bytes, 0, bytesRec)
    If data.IndexOf("<EOF>") > - 1 Then
        Exit While
    End If
End While
            
Console.WriteLine("Text received : {0}", data)

Dim msg As Byte() = Encoding.ASCII.GetBytes(data)
handler.Send(msg)
handler.Shutdown(SocketShutdown.Both)
handler.Close()

[C#]
Console.WriteLine("Waiting for a connection...");
Socket handler = listener.Accept();
String data = null;

while (true) {
    bytes = new byte[1024];
    int bytesRec = handler.Receive(bytes);
    data += Encoding.ASCII.GetString(bytes,0,bytesRec);
    if (data.IndexOf("<EOF>") > -1) {
        break;
    }
}

Console.WriteLine( "Text received : {0}", data);

byte[] msg = Encoding.ASCII.GetBytes(data);
handler.Send(msg);
handler.Shutdown(SocketShutdown.Both);
handler.Close();

請參閱

使用非同步的伺服器通訊端 | 同步的伺服器通訊端範例 | 使用通訊端聆聽