分析结果:从上图对比可知,传输相同大小(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目录中的源代码多线程