用socket編程時,沒有指定應用層協議就可以直接把client socket的數據發出去到server socket,socket編程不需要使用應用層協議嗎?為啥用到了傳輸層協議(默認好像是TCP)卻不用應用層協議?
2 回答

慕少森
TA貢獻2019條經驗 獲得超9個贊
舉個例子:
Http是應用層協議,TCP是網絡層協議,應用層在TCP/IP四層架構中位于TCP的上一層
TCP連接在實現時要借助Socket(套接字 IP+端口號)
Socket接口是TCP/IP網絡的API,Socket接口定義了許多函數或例程,程序員可以用它們來開發TCP/IP 網絡上的應用程序
HTTP連接需要指明資源的URL,發出請求的應用不知道服務器的IP,雖然域名服務器也是要把域名解析成IP地址,但不屬于應用所關心的范疇,是網絡層應該完成的工作。所以Http連接屬于無狀態的短連接,若再請求其他數據,需要再重新建立連接??蛻舳讼蚍掌靼l送請求后,服務器才知道客戶端的存在。
TCP連接實現時需要指明IP地址和端口號,就可以跟目的主機通過三次握手建立聯系,該連接一直保持直到某一方提出取消連接,通過四次握手關閉連接。Socket支持TCP/UDP協議,如果使用TCP協議,那么socket連接就是TCP連接。

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
tcp協議是4層協議,所有應用層協議都是基于tcp協議基礎之上封裝的協議。socket連接是tcp層連接。如果有實現特殊的需要,如實現web頁面訪問,使用http的7層協議實現。
添加回答
舉報
0/150
提交
取消