TCP使用注意點

UDP過程:
1.socket
2.bind(可有可無)
3.sendto/recvfrom
4.close

TCP_Client過程:
1.socket
2.connect
3.send/recv
4.close

TCP_Server過程:
1.socket
2.bind
3.listen
4.accept
5.send/recv
6.close

TCP注意點:

1.TCP服務器一般都需要綁定IP與端口,否則客戶端找不到這個服務器
2.TCP客戶端一般不綁定,因爲是主動鏈接服務器,所以只要確定好服務器的IP,port等信息即可,本地客戶端可以隨機
3.TCP服務器中通過listen可以將socket創建出來的主動套接字變爲被動套接字,這是做TCP服務器時必須要做的
4.當客戶機需要鏈接服務器時,就需要使用connect進行鏈接,UDP是不需要鏈接的而是直接發送,但是TCP必須先鏈接,只有鏈接成功才能通信
5.當一個客戶端連接服務器時,服務器端會有一個新的套接字,這個套接字用來標記這個客戶端,單獨爲這個客戶端服務
6.listen後的套接字是被動套接字,用來接收新的客戶端的鏈接請求,而accept返回的新套接字是標記這個新客戶端的
7.關閉listen後的套接字意味着被動套接字關閉了,會導致新的客戶端不能鏈接服務器,但是之前鏈接成功的客戶端正常通信
8.關閉accept返回的套接字意味着這個客戶端已經服務完畢
9.當客戶端的套接字調用close後,服務端會recv解堵塞,並且返回長度爲0,因此服務器可以通過返回數據的長度來區別客戶端是否已經下線

解堵塞兩種情況
a.接收到新的鏈接;
b.客戶端調用close

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章