分析結果:從上圖對比可知,傳輸相同大小(32字節)、相同數量(4個)的數據,丟包率二者均爲0%,可是ping cec.jmu.edu.cn比ping www.baidu.com包的平均傳輸時間更短。 緣由:Ping命令主要用於測試本地主機與遠程主機之間的連通性,而傳輸時間的長短受傳輸介質、網速、對方服務器等因素影響。
從上圖知,bbs.newsmth.net的ip地址爲101.200.29.164,遠程端口號爲23
什麼都沒有 沒有返回cec.jmu.edu.cn 使用命令GET /index HTTP/1.0後,返回主頁源碼
QQ等程序 14311,4300,4301
(1)ip地址和域名; (2)端口; (3)協議; (4)數據傳輸方式。
//201521123117 public class Client { public static void main(String[] args){ try{ Socket s=new Socket("ip",端口號); try{ InputStream inStream =s.getInputStream(); Scanner in =new Scanner(inStream); while(in.hasNextLine()){ String line = in.nextLine(); System.out.println(line); } } finally { s.close(); } }catch (IOException e) { e.printStackTrace(); } } }
(1)"bbs.newsmth.net" 23
(2)telnet bbs.newsmth.net 23
java
(1)返回"bbs.newsmth.net"的23端口的界面,只是顯示初始界面,沒法輸入代號實現其功能,顏色控制符沒法解析; (2)telnet bbs.newsmth.net鏈接到"bbs.newsmth.net"的23端口,進入界面,能夠輸入對應字符串實現功能。
在cmd中輸入telnet cec.jmu.edu.cn命令,沒有返回任何結果,而這個程序返回的是網址的初始界面,故程序沒有任何返回結果。
嘗試使用Client.java鏈接該TCP Server,使用該服務器向Client發送信息。(截圖)
網絡調試助手輸入:
輸出結果:
編程
思路:使用Scanner(System.in)在控制檯進行輸入,PrintWriter(s.getOutputStream())得到Socket對象的輸出流,並從控制檯輸出信息,最後要flush(),防止數據丟失。
關鍵代碼:小程序
menu:瀏覽器
out.println("***********************"); out.println( "1.顯示服務器當前時間 " ); out.println( "2.您的IP " ); out.println( "3.文件搜索" ); out.println( "4.退出菜單" ); out.println("***********************");
選擇:服務器
switch(x){ case 1:{//獲取當前時間 Date date=new Date(); DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time=format.format(date); out.println("當前時間:"+time); out.println(); break; } case 2:{//獲取IP out.println("您的IP:"+this.incoming.getInetAddress().toString()); out.println(); break; } case 3:{//文件搜索 out.println("無文件"); out.println(); break; } case 4:{//退出菜單 flag=false; out.println("退出成功"); out.println(); out.println( "輸入menu,選擇菜單" ); out.println( "輸入quit,退出服務器" ); out.flush(); break; } }
運行結果截圖:
網絡
編寫網絡程序時應當選擇InputStream和OutputStream。 關係:客戶端的輸入流鏈接到服務器,服務器和Socket對象之間經過InputStream,讀取客戶端發出的信息;Socket對象經過OutputStream與服務器鏈接,將信息發送出去,服務器的輸出流與客戶端鏈接,實現了客戶端讀取Socket對象發出的信息。從而實現了雙向通訊。
閱讀ServerAndThread目錄中的源代碼多線程