學習目標html
OSI分層(7層):物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。java
1 物理層:RJ4五、CLOCK、IEEE802.3 (中繼器,集線器,網關)git
2 數據鏈路:PPP、FR、HDLC、VLAN、MAC (網橋,交換機)編程
3 網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)數組
4 傳輸層:TCP、UDP、SPX服務器
5 會話層:NFS、SQL、NETBIOS、RPC網絡
6 表示層:JPEG、MPEG、ASII多線程
7 應用層:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFSsocket
一般OSI參考模型第一層到第三層稱爲底層(lower layer),又叫介質層(media layer),底層負責數據在網絡中的傳送,網絡互連設備每每位於下三層,以硬件和軟件的方式來實現。OSI參考模型的第五層到第七層稱爲高層(upper layer),又叫住幾層(host layer),高層用於保障數據的正確傳輸,以軟件方式來實現。tcp
掌握Ja Socket編程
//獲取本機的InetAddress實例
InetAddress address =InetAddress.getLocalHost();
address.getHostName();//獲取計算機名
address.getHostAddress();//獲取IP地址
byte[] bytes = address.getAddress();//獲取字節數組形式的IP地址,以點分隔的四部分
//獲取其餘主機的InetAddress實例
InetAddress address2 =InetAddress.getByName("其餘主機名");
InetAddress address3 =InetAddress.getByName("IP地址");
//四、獲取輸出流,響應客戶端的請求
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("歡迎您!");
pw.flush();
客戶端:
① 建立Socket對象,指明須要鏈接的服務器的地址和端口號//三、獲取輸入流,並讀取服務器端的響應信息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String info = null;
while((info=br.readLine())!null){
System.out.println("我是客戶端,服務器說:"+info);
}
應用多線程實現服務器與多客戶端之間的通訊
① 服務器端建立ServerSocket,循環調用accept()等待客戶端鏈接
② 客戶端建立一個socket並請求和服務器端鏈接
③ 服務器端接受苦讀段請求,建立socket與該客戶創建專線鏈接
④ 創建鏈接的兩個socket在一個單獨的線程上對話
⑤ 服務器端繼續等待新的鏈接
//
public serverThread(Socket socket){
this.socket = socket;
}
publicvoid run(){服務器處理代碼 }
//============================================
//服務器代碼
ServerSocket serverSocket =newServerSocket(10086);
Socket socket =null;
int count =0;//記錄客戶端的數量
while(true){
socket = serverScoket.accept();
ServerThread serverThread =newServerThread(socket);
serverThread.start();
count++;
System.out.println("客戶端鏈接的數量:"+count);
}
教材學習有問題先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,若是別人沒有提出相同問題,能夠編輯文檔添加,而後把本身提出的問題複製到下面:
教材中代碼調試有問題先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,若是別人沒有提出相同問題,能夠編輯文檔添加,而後把本身提出的問題複製到下面:
(statistics.sh腳本的運行結果截圖)
我與20155327李百乾結對學習,在一塊兒學習的時間甚少,沒有過多評論。
教材學習中的問題和解決過程, 一個問題加1分
代碼調試中的問題和解決過程, 一個問題加1分
基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx
上週博客互評狀況(只要連接,具體點評放相應博客下)
這兩週在補書上代碼,一個一個的敲,枯燥無味,在敲代碼的過程當中雖然發現了一些問題,也學習到不少。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 3000行 | 30篇 | 400小時 | |
第十週 | 200/200 | 15/30 | 19/211 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:14小時
實際學習時間:19小時
改進狀況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)