1.什麼是C/S架構? Client 客戶端 Server 服務端 互聯網中到處是C/S架構 如12306網站是服務端,你的瀏覽器是客戶端(B/S架構也是C/S架構的一種) 騰訊做爲服務端爲你提供視頻,你得下個騰訊視頻客戶端才能看它的視頻) C/S架構與socket的關係: 咱們學習socket就是爲了完成C/S架構的開發2.互聯網協議是什麼?分別介紹五層協議中每一層的功能? 互聯網協議:計算機界的英語 OSI七層: 應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層 TCP/IP四層/五層: 應用層 應用層 :軟件 qq 暴風 傳輸層 傳輸層 :創建端口到端口的通訊 0-65535 0-1023爲系統佔用端口 tcp ucp 網絡層 網絡層 :ip+mac 能找到全世界惟一的計算機 ip:找到哪個局域網 mac:找到那一臺機器 數據鏈路層 接口層 :定義電信號的分組方式 物理層 :發送01010101...電信號3.基於tcp協議通訊,爲什麼創建連接須要三次握手,而斷開連接卻須要四次揮手 三次握手:client請求,server贊成請求,client贊成 四次揮手:client請求,server贊成,server請求,client贊成 由於:server有可能還有數據要發送4.爲什麼基於tcp協議的通訊比基於udp協議的通訊更可靠? tcp:可靠 對方給了確認收到信息,才發下一個,若是沒收到確認信息就重發 udp:不可靠 一直髮數據,不須要對方迴應5.流式協議指的是什麼協議,數據報協議指的是什麼協議? 流式協議:TCP協議,可靠傳輸 數據報協議: UDP協議,不可傳輸6.什麼是socket?簡述基於tcp協議的套接字通訊流程 Socket是應用層與TCP/IP協議族通訊的中間軟件抽象層,它是一組接口。 socket == 片面說: ip + 端口 服務端:socket(),bind(),listen(),accept(),recv(),send(),close() 客戶端:socket(),connect(),send(),recv(),close()7.什麼是粘包? socket 中形成粘包的緣由是什麼? 哪些狀況會發生粘包現象? 粘包:數據粘在一塊兒,主要由於:接收方不知道消息之間的界限,不知道一次性提取多少字節的數據形成的 數據量比較小,時間間隔比較短,就合併成了一個包,這是底層的一個優化算法(Nagle算法)8.基於socket開發一個聊天程序,實現兩端互相發送和接收消息 -- 4.加上連接循環9.基於tcp socket,開發簡單的遠程命令執行程序,容許用戶執行命令,並返回結果 -- 5.模擬ssh遠程執行命令10.基於tcp協議編寫簡單FTP程序,實現上傳、下載文件功能,並解決粘包問題 --11.文件傳輸 面向對象版本11.基於udp協議編寫程序,實現功能 -- 14.UDP執行指令查看服務端的時間,設置時間同步 執行指定的命令,讓客戶端能夠查看服務端的時間 執行指定的命令,讓客戶端能夠與服務的的時間同步程序參考:http://www.cnblogs.com/alice-bj/p/8610363.html