以你喜欢的方式(思惟导图、OneNote或其余)概括总结多网络相关内容。
java
为了让你的系统能够被多个用户经过网络同时使用,须要为你的系统增长网络功能。编程
答:主要是添加了一个NetServer
类,让代码可以被客户端使用远程链接来进行一系列操做。为了让系统可以同时被多个客户端访问,选择了使用TCP技术以及多线程技术。在NetServer
类中建立了ServerSocket
对象的套接字,而后又建立一个ThreadServer
类来实现多线程技术,该类实现了Runnable
接口,在run方法里写出了用户可进行的相应的操做。而后在主函数中建立线程,不断接收新的客户端,由此可实现多个用户对系统的同时操做。小程序
答:系统经过网络将用户端或是服务端所进行的操做使用IO流传递给对方,信息使用字节流InputStream
以及OutputStream
存储,而后再经过字符流Scanner
以及PrintWriter
进行包装传输。浏览器
答:使用了TCP技术,模块中最经常使用的类为TCP网络通讯方面的ServerSocket
类以及Socket
类,还有多线程方面的Runnable
类和Thread
类服务器
答:主要就是建立了一个NetServer类,并定义其端口为9700,而后在主函数中开启服务端进行客户端的接收,将接收到的客户端放到一个线程中分别进行处理。在ThreadServer
类中实现run方法来设定用户所能进行的操做。
网络
建立套接字链接上图书馆系统的IP和端口号,而后设置两个线程,分别实现客户端与服务端之间的交流。
多线程
须要将每周的代码统计状况融合到一张表中。
框架
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
2 | 607 | 607 | 15 | 15 |
3 | 1642 | 1035 | 33 | 18 |
5 | 2044 | 402 | 42 | 9 |
6 | 2874 | 830 | 57 | 15 |
7 | 3161 | 287 | 63 | 6 |
8 | 4299 | 1138 | 72 | 9 |
9 | 4831 | 532 | 81 | 9 |
10 | 5475 | 644 | 93 | 12 |
11 | 5958 | 483 | 102 | 9 |
12 | 6819 | 861 | 116 | 14 |
13 | 7408 | 589 | 127 | 11 |
14 | 8348 | 940 | 141 | 14 |
ping www.baidu.com
与ping cec.jmu.edu.cn
,分析返回结果有何不一样?为何会有这样的不一样?
117.185.17.151
来自上海市,而112.5.163.149
来自福建省厦门市。telnet bbs.newsmth.net
,上面这条命令链接的是远程主机的什么端口号?答:远程登陆服务使用的默认端口为23,这个通常常识,固然,也能够用netstat
命令进行查询。eclipse
telnet cec.jmu.edu.cn 80
,尝试回答:你从屏幕看到一些什么内容?返回的内容是否是cec.jmu.edu.cn
的主页内容?尝试使用GET /index HTTP/1.0
命令,会返回什么?详见实验任务书题目1。答:看到……一片黑暗,什么内容都没有。当使用了GET /index HTTP/1.0
命令,会返回学校主页的源码。这是由于学校的网页服从的是HTTP协议,所以要使用GET /index HTTP/1.0
发送请求来得到网页内容。socket
答:其实没怎么改源代码,只是加了一个控制台输入,而后查询了百度的IP地址进行接收该页面的信息。
telnet bbs.newsmth.net 23
,对比返回结果。
答:能够看出,除了一些编码上问题致使一些字符没法正常显示,二者返回的结果几乎同样。
答:没有返回结果是由于没有使用GET / HTTP/1.0\n
命令发送一个请求,所以不会有返回结果,加上以下代码便可。
会出现乱码主要是由于eclipse上的默认字符集是GBK,而网页上的字符集不是,我先查看了网页的源代码,由下图能够看出,网站的字符集为UTF-8,而后只要把eclipse上的字符集修改成UTF-8便可。最后再运行时便可正常显示
尝试使用Client.java
链接该TCP Server,使用该服务器向Client发送信息。(截图关键代码与运行结果)
Client.java
只能接收信息,可否改造Client.java
使其能够与服务器进行交互(服务器能够发送信息给Client,Client也可发送信息给服务器),写出大概思路,不要运行截图。答:通常要实现客户端与服务器的交互,要用到线程的知识,能够在代码中建立两个线程,分别实现他们的run方法,一个线程用于客户机向服务端发送数据,另外一个线程用于服务器像客户机发送数据。
UDP
,要填本机IP与端口
也要填远程服务器的IP与端口
。
答:UDP是一种无链接的数据交换方式,发送数据以前不须要创建链接,而TCP要创建完链接才能进行数据的传送。为了链接多个客户端,须要使用多线程技术,否则由于UDP没有在发送方和接收方之间建立链接,因此没法区分不一样的客户端。
答:对于网络聊天室,咱们可使用BufferedReader和BufferedWriter字符流来进行数据的接收和发送操做来实现用户和用户之间的通讯。在Java的网络编程中,咱们先要使用套接字来建立一个对象,而后咱们要进行网络之间的通讯,这时候就要用到Java中的各类IO流,所以,JAVA的IO流是网络编程中进行数据传输的主要途径。
阅读ServerAndThread目录中的源代码
答:这个程序的功能是用于链接客户端和服务端,让它们能够进行通讯,相似一个简易的聊天系统。学号直接加在标题栏了,简单粗暴……
ServerChart
:服务端的界面框架ServerReadThread
:与客户端进行通讯,并将接收的消息显示出来ServerActionListener
:服务端动做监听器,为服务端界面的按钮添加监听事件ClientChart
:客户端的界面框架ClientReaderThread
:与服务端进行通讯,并将接收的消息显示出来ClientListener
:客户端动做监听器,为客户端界面的按钮添加监听事件MainThread
:让客户端与服务端创建链接,将线程放入列表让服务端去读取1.客户端界面接收到的消息没法区分是谁发送的。
改进方法:在客户端和服务端发送消息时就标记上是谁发送的。
2.服务端接收的消息没有换行。
改进方法:在服务端显示在本身的消息上加一个换行符。
3.不管先关闭哪一端,都会让另外一端由于还在不停请求输入流而不断输出报错信息。
改进方法:当另外一端关闭时,在处理异常时直接使用break
退出请求。