這個題目不好回答,因為他牽扯東西比較多,問的方向比較廣,我盡量發散說,如果里面遇到你不知道知識點,那么你需要自己查閱里面你不清楚點。
Socket是什么?
· TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸;
· Socket是對TCP/IP協議的封裝和應用(程序員層面上);
· 而HTTP是應用層協議,主要解決如何包裝數據。
TCP/IP和HTTP協議的關系是:“我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別數據內容。如果想要使傳輸的數據有意義,則必須使用到應用層協議。應用層協議有很多,比如HTTP、FTP、TELNET等,也可以自己定義應用層協議。WEB使用HTTP協議作應用層協議,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協議將它發到網絡上。”
Socket是什么呢,實際上socket是對TCP/IP協議的封裝,Socket本身并不是協議,而是一個調用接口(API)。通過Socket,我們才能使用TCP/IP協議。
Socket跟TCP/IP協議關系是:“TCP/IP只是一個協議棧,就像操作系統的運行機制一樣,必須要具體實現,同時還要提供對外的操作接口。這個就像操作系統會提供標準的編程接口,比如win32編程接口一樣,TCP/IP也要提供可供程序員做網絡開發所用的接口,這就是Socket編程接口。”
這樣回答肯定不行:你肯定說說建立socket的基本流程
可以看到本質上,socket是對tcp連接(當然也有可能是udp等其他連接)協議,在編程層面上的簡化和抽象。
要想深刻理解socket必須要有:網絡七層,每一層有一個了解,在應用層,傳輸層,網絡層這三層要熟悉不是了解了。
下面這些也了解一下:
1、單向通信
2、雙向通信
3、同時實現消息的發送與接收
4、使用線程池優化服務端并發能力
5、連接保活(心跳包,斷開時重連)
6、三次握手,四次揮手過程描述
更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的好程序員班,高品質課程助理你實現java程序員夢想。