socket 簡介
1.什麼是socket?
socket是對tcp/ip 協議的抽象,是作業系統對外開放的介面。socket起源於unix,而unix/linux基本哲學之一就是「一切皆檔案」,都可以用「開啟open –> 讀寫write/read –> 關閉close」模式來操作。我的理解就是socket就是該模式的乙個實現,socket即是一種特殊的檔案,一些socket函式就是對其進行的操作(讀/寫io、開啟、關閉).
2.socket通訊流程
先從伺服器端說起。伺服器端先初始化socket,然後與埠繫結(bind),對埠進行監聽(listen),呼叫accept阻塞,等待客戶端連線。在這時如果有個客戶端初始化乙個socket,然後連線伺服器(connect),如果連線成功,這時客戶端與伺服器端的連線就建立了。客戶端傳送資料請求,伺服器端接收請求並處理請求,然後把回應資料傳送給客戶端,客戶端讀取資料,最後關閉連線,一次互動結束。
3.socket相關的面試題
編寫乙個網路應用程式,有客戶端和伺服器端,客戶端向伺服器傳送乙個字串,伺服器收到該字串後將其列印到命令列上,然後向客戶端返回該字串的長度,最後客戶端輸出伺服器端返回的該字串的長度,分別用tcp和udp兩種方式去實現
3.1 tcp實現
3.2 udp實現
面試題 ICMP協議簡介
l icmp網際控制報文協議,通過它可以知道故障的具體原因和位置。l 由於ip不是為可靠傳輸服務設計的,icmp的目的主要是用於在tcp ip網路中傳送出錯和控制訊息。l icmp的錯誤報告只能通知出錯資料報的源主機,而無法通知從源主機到出錯路由中途所的所有路由器。l icmp資料報是封裝在ip資料...
面試題及心得
今天參加了一家大公司的面試,進去先做了一套筆試題,分享給大家 1 寫出public,protected,private以及預設的 default 的作用範圍 2 寫出 和 的區別 是按位運算子,沒有短路效應,結果是0或1 是邏輯運算子,有短路效應,結果是true或者false 3 4 5 輕易效率最...
面試題及答案
1.css優先順序演算法如何計算 2.css盒子模型 3.new操作符具體幹了什麼呢 4.dom操作 怎樣新增 移除 複製 建立和查詢節點 5.js有幾種資料型別,分別是什麼 6.js如何判斷乙個陣列 7.如何通過指定名稱建立乙個元素 8.在jquery 中,如何給動態新增的元素繫結事件 9.如何獲...