TCP通訊 多客戶端連線乙個伺服器端總結

2021-07-16 04:27:40 字數 854 閱讀 9023

windows下tcp通訊,多個客戶端連線伺服器端。

一、伺服器端流程實現如下:

1、通過socket函式,建立基於流式型別的socket,可名為serversocket;

2、呼叫bind函式,繫結本地的監聽埠號和本地ip位址;

3、呼叫listen函式,開始監聽客戶端請求。其中該函式第二個引數指定了最大連線客戶端數目;

4、通過呼叫afxbeginthread(threadfun, 0),實現建立執行緒處理監聽後客戶端請求;

5、關閉serversocket;

如上流程中,通過建立執行緒辦法實現對客戶端請求的處理。

執行緒處理函式threadfun的實現流程如下:

1)呼叫accept等待客戶端請求,並返回客戶端通訊的socket,可名為clientsocket;

2)客戶端請求接收成功後,繼續呼叫afxbeginthread(threadfun, 0)建立執行緒,實現對其他客戶端請求做處理;

3)呼叫recv接收資料;

4)檢測接收到資料的合法性,並呼叫send函式返回響應資料;

5)呼叫closesocket(clientsocket),關閉得到到客戶端請求的socket。

二、客戶端實現流程

通常流程沒有加入超時處理,如下通過其他機制實現了客戶端接收訊息響應超時的處理。

實現流程如下:

1、建立socket基於流式socket型別的socket。

2、呼叫connect連線伺服器

3、呼叫send傳送請求資料;

4、通過select函式判斷socket接收資料是否超時。其中需要使用到fd_set和time_val型別。

5、呼叫closesocket關閉客戶端socket。

TCP通訊,多客戶端通訊(客戶端 服務端)

客戶端和伺服器間的交流,客戶端傳送資訊,伺服器接收到,並返回資訊 長連線建立socket連線服務端 指定ip位址,埠號 通過ip位址找對應的伺服器 呼叫socket的getinputstream 和getoutputstream 方法獲取和服務端相連的io流 輸入流可以讀取服務端輸出流寫出的資料 輸...

TCP通訊 多客戶端連線乙個伺服器端總結

windows下tcp通訊,多個客戶端連線伺服器端。1 通過socket函式,建立基於流式型別的socket,可名為serversocket 2 呼叫bind函式,繫結本地的監聽埠號和本地ip位址 3 呼叫listen函式,開始監聽客戶端請求。其中該函式第二個引數指定了最大連線客戶端數目 4 通過呼...

TCP連線實現 客戶端 服務端 通訊

客戶端 client.c include include include include include include include include define max buf 512 int main int argc,char argv 設定伺服器位址結構體 bzero server ad...