您好,登錄后才能下訂單哦!
這篇文章主要介紹“什么是Socket編程”,在日常操作中,相信很多人在什么是Socket編程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”什么是Socket編程”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Socket,英文含義是【插座、插孔】,一般稱之為套接字,用于描述IP地址和端口。可以實現不同程序間的數據通信。
Socket起源于Unix,而Unix基本哲學之一就是“一切皆文件”,都可以用“打開open–>讀寫write/read–>關閉close”模式來操作。Socket就是該模式的一個實現,網絡的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似于打開文件的函數調用:Socket(),該函數返回一個整型的Socket描述符,隨后的連接建立、數據傳輸等操作都是通過該Socket實現的。
在TCP/IP協議中,“IP地址+TCP或UDP端口號”唯一標識網絡通訊中的一個進程。“IP地址+端口號”就對應一個socket。欲建立連接的兩個進程各自有一個socket來標識,那么這兩個socket組成的socketpair就唯一標識一個連接。因此可以用Socket來描述網絡連接的一對一關系。
常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對于面向連接的TCP服務應用;數據報式Socket是一種無連接的Socket,對應于無連接的UDP服務應用。
C/S模式
傳統的網絡應用設計模式,客戶機(client)/服務器(server)模式。需要在通訊兩端各自部署客戶機和服務器來完成數據通信。
B/S模式
瀏覽器(Browser)/服務器(Server)模式。只需在一端部署服務器,而另外一端使用每臺PC都默認配置的瀏覽器即可完成數據的傳輸。
優缺點
對于C/S模式來說,其優點明顯。客戶端位于目標主機上可以保證性能,將數據緩存至客戶端本地,從而提高數據傳輸效率。且,一般來說客戶端和服務器程序由一個開發團隊創作,所以他們之間所采用的協議相對靈活。可以在標準協議的基礎上根據需求裁剪及定制。例如,騰訊所采用的通信協議,即為ftp協議的修改剪裁版。
因此,傳統的網絡應用程序及較大型的網絡應用程序都首選C/S模式進行開發。如,知名的網絡游戲魔獸世界。3D畫面,數據量龐大,使用C/S模式可以提前在本地進行大量數據的緩存處理,從而提高觀感。
C/S模式的缺點也較突出。由于客戶端和服務器都需要有一個開發團隊來完成開發。工作量將成倍提升,開發周期較長。另外,從用戶角度出發,需要將客戶端安插至用戶主機上,對用戶主機的安全性構成威脅。這也是很多用戶不愿使用C/S模式應用程序的重要原因。
因此在開發過程中,模式的選擇由上述各自的特點決定。根據實際需求選擇應用程序設計模式。
到此,關于“什么是Socket編程”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。