Java第10次实验(网络)

时间:2021-05-19 16:35:19

参考资料

本次作业参考文件
正则表达式参考资料
漫画:HTTP 协议极简教程,傻瓜都能看懂!

注:主要根据实验任务书的指导完成本次实验。

第1次实验

1. 网络基础

  1. ipconfig、ping
  2. ConnectionWatcher(简单讲解)
  3. telnet(连接BBS与连接Web服务器的不同)
    有的电脑未安装telnet,可以在控制面板-程序-添加/删除Windows功能中选择Telnet客户端进行安装。

2. 编写TCP客户端程序

任务:

  1. 参考SocketTest.java编写一个简单的TCP客户端Client.java。
    注:Client中远程服务器IP不要填入127.0.0.1或localhost,否则可能会出现Connection Refused!
  2. 使用网络调试助手4.2建立一个TCP Server。然后使用Client.java连接该TCP Server(注意:服务器向客户端发送信息时,因为客户端使用hasNextLine()方法,所以服务器端发送的消息需带回车换行,客户端才能将消息读出)。
  3. 使用ConnectionWatcher查看本机所占用的端口。

注意事项:

  • 客户端发送给服务器端(输出流,PrintWriter缓冲区与autoflush)
  • 常见错误:网络调试助手显示bind() failed表示相应端口已经被其他程序占用,请结束该程序。

3. ServerSocket与TCP服务器

任务:

  1. 单线程MenuServer服务器
    常见错误:Eclipse中显示Address already in use,端口已经被占用,先关闭占用该端口的程序。
    验证:在另外一台电脑上启动网络调试助手,连接你编写的服务器端。注意:IP地址能设定为127.0.0.1吗?
  2. 多线程MenuServer服务器
    在单线程MenuServer程序中,服务器端只能允许一个客户端连接,如何允许服务器同时连接多个客户端?
  3. 进阶:建立基于TCP的客户端/服务端一体化程序
    现在通过网络调试助手可以实现向服务器发送消息,同时从服务器接受消息。改造Client.java为其增加GUI界面,实现同时收发消息的功能。

参考资料:

EchoServer.java,ThreadedEchoServer.java (多线程服务器)

4. UDP服务器

使用UDP改造前面的MenuServer与对应的MenuClient

5. URL类

更多参考资料:

作业11-网络