有沒有辦法處理與C#中的套接字會話?我的問題與會話的.NET TCP套接字
例子:
我有一個socket監聽端口5672。
TcpListener socket = new TcpListener(localAddr, 5672);
socket.Start();
Console.Write("Waiting for a connection... ");
// Perform a blocking call to accept requests.
TcpClient client = socket.AcceptTcpClient();
Console.WriteLine("Connected to client!");
,我有兩個客戶端將發送一個字節的服務器。客戶端A發送0x1,客戶端B發送0x2。 從服務器端,我讀這個數據是這樣的:
Byte[] bytes = new Byte[256];
String data = null;
NetworkStream stream = client.GetStream();
while ((stream.Read(bytes, 0, bytes.Length)) != 0)
{
byte[] answer = new ...
stream.Write(answer , 0, answer.Length);
}
然後客戶端A發送爲0x11。 我需要一種方法來知道這個客戶端是以前發送「0x1」的相同。
我不明白數據如何混合。在我讀取第一個客戶端發送的數據後,TcpClient對象被銷燬。並讀取以下數據我必須做socket.AcceptTcpClient();再次。你能發佈一個演示代碼來檢測客戶端A在sendig 0x1後發送0x11的時間嗎?謝謝 – 2010-03-16 19:39:10
@ZeCarlos:你真的需要關閉'TcpClient'實例嗎?爲什麼不重用它們?每個人都可以從一個客戶端獲得一個完整的數據流。 – 2010-03-16 19:43:29
你說得對。我可以重用TcpClient及其關聯的流。對不起,我的無知。謝謝 – 2010-03-16 20:09:30