0
我正在處理客戶端服務器應用程序。TCPClient - 發送和接收重疊
我爲服務器和客戶端都使用TCPClient。
服務器偵聽並響應,客戶端將發送和接收。每個從服務器響應包含不同的消息長度。
客戶端有2個請求。一個是ping請求,另一個是發送數據請求。
我創建了一個線程來每10秒鐘ping一次服務器。
當用戶按下發送按鈕時,客戶端發送數據請求。
服務器通過向客戶端發送2個字節來響應ping請求。
服務器通過發回8個字節來響應數據請求。
這是我遇到的問題。
ping線程有時會在用戶按下發送按鈕的同時將請求發送到服務器。
現在數據請求方法正在從套接字讀取,並期待8個字節,但只有得到2個字節,因此掛起很長一段時間。
這裏是從數據請求方法的代碼片段:
byteBuffer = new byte[8];
remainingBytes = byteBuffer.Length;
numberOfBytesRead = netStream.Read(byteBuffer, index, remainingBytes);
這裏是從平線的片段:
byteBuffer = new byte[2];
remainingBytes = byteBuffer.Length;
numberOfBytesRead = netStream.Read(byteBuffer, index, remainingBytes);
我能做些什麼,以便客戶端知道哪個響應去哪些方法?
感謝