網路通訊tcp的困惑和解決(一)

2021-07-15 18:10:35 字數 882 閱讀 7236

第一次接觸網路程式設計,只是很簡單地在visual studio環境下搭建了伺服器端和客戶端。解決了如下困惑:

0.0.0.0是本機上所有ip的集合,而127.0.0.1是本機的環迴位址。
如果pc1既做client, 又做server

client去連127.0.0.1:1234, server必須監聽127.0.0.1:1234或者0.0.0.0:1234【inaddr_any就是inet_addr("0.0.0.0")】
如果pc1(client)的ip為192.168.1.10, pc2(server)的ip為192.168.1.115。

pc1去連線 192.168.1.115:1234,     pc2監聽0.0.0.0:1234,  可連。

pc1去連線 192.168.1.115:1234, pc2監聽192.168.1.115:1234, 可連。

客戶端可以繫結套接字,但是一般不繫結。因為不繫結的情況下,作業系統會隨機分配不衝突的埠號,而自己繫結可能產生衝突
最常見防火牆的開啟導致訪問失敗。連線前雙方先ping一下看是否能通
使用using namespace std,這樣命名空間std內定義的所有識別符號都有效(**)。就好像它們被宣告為全域性變數一樣。如果不用這句指明的話就要用std::string。

比如:如果不寫這句,你寫cin和cout時候就必須這樣寫,否則找不到cin或者cout。std::cin>>a;std::cout<這個套接字專門用來與客戶端進行資料交換(即tcp的第三次握手)。然後監聽套接字就空閒了繼續監聽有沒有其他客戶端發來連線請求。

網路通訊 TCP和UDP 一

要搞清楚網路中程序間是如何通訊的,首先就得解決 如何標誌乙個程序 網路層的 ip位址 可以唯一標識網路中的主機,而傳輸層的 協議 埠 可以唯一標識主機中的應用程式 程序 這樣利用三元組 ip位址,協議,埠 就可以標識網路的程序了,網路中的程序通訊就可以利用這個標誌與其它程序進行互動。tcp和udp ...

linux網路通訊二(TCP)

tcp通訊 流程圖如下 1 建立 socket套接字 相同2 繫結 將建立的socket套接字返回的控制代碼與本機的ip 埠繫結 相同3 監聽 監聽socket include int listen int s,int backlog s 監聽的控制代碼 backlog 監聽的最大數,預設20 成功...

網路通訊C S模型 TCP

基本模型圖如下 伺服器呼叫socket bind listen 完成初始化後,呼叫accept 阻塞等待,處於監聽埠的狀態,客戶端呼叫socket 初始化後,呼叫connect 發出syn段並阻塞等待伺服器應答,伺服器應答乙個syn ack段,客戶端收到後從connect 返回,同時應答乙個ack段...