第13周 预习、实验与作业:Java网络编程
目录
1 课前问题列表
1.编写一个网络程序,为了与其他网络程序通信,至少要知道对方的什么信息?
2.TCP与UDP协议有什么不同的呢?什么时候该选择哪种协议?HTTP使用的是TCP还是UDP?不重要的短信息传送之类的功能更适合使用TCP还是UDP?
3.打开浏览器浏览某个网页,使用资源监视器查看该浏览器使用了什么端口?(打开路径:任务管理器-性能-打开资源监视器) 。使用“curl -v 某个网址”,查看之间的HTTP通信信息,并做记录。
4.使用Socket进行编程,使用的是TCP还是UDP协议?观察TCPClientTest.java,其输入流、输出流哪个是从网络读数据,哪个是向网络发送数据?程序中有出现TCP或UDP协议的细节吗?观察TCPClientTest.java,该程序可以同时进行从网络上读、向网网络上写吗?
5.启动TCPEchoServer.java服务器,然后使用两个客户端(比如两个telnet或两个网络调试助手)同时连接该服务器,可以连接成功吗?为什么?
1 课前问题列表
1.编写一个网络程序,为了与其他网络程序通信,至少要知道对方的什么信息?
对方的ip地址
2.TCP与UDP协议有什么不同的呢?什么时候该选择哪种协议?HTTP使用的是TCP还是UDP?不重要的短信息传送之类的功能更适合使用TCP还是UDP?
TCP的全称是传输控制协议(Transmission Control Protocol)
UDP的全称是用户数据报协议(User Datagram Protocol)
不同:
TCP是面向连接的协议,它在通信之前需要先建立连接,然后再进行数据传输。TCP需要通过三次握手建立连接和四次挥手释放连接。其连接具有连续性和稳定性。
UDP是一种无连接的、不可靠的传输协议,它简单地将应用程序传递给它的数据报发送到目标地址,并没有确认机制来确保数据的完整性和可靠性
HTTP使用的是TCP。
不重要的信息使用UDP。理由:UDP的数据发送不需要检查是否发送成功以及不需要接收方的确认,这些应用场景对实时性要求较高,可以容忍少量数据丢失,而且UDP的低延迟特性符合这些需求。
3.打开浏览器浏览某个网页,使用资源监视器查看该浏览器使用了什么端口?(打开路径:任务管理器-性能-打开资源监视器) 。使用“curl -v 某个网址”,查看之间的HTTP通信信息,并做记录。
4.使用Socket进行编程,使用的是TCP还是UDP协议?观察TCPClientTest.java,其输入流、输出流哪个是从网络读数据,哪个是向网络发送数据?程序中有出现TCP或UDP协议的细节吗?观察TCPClientTest.java,该程序可以同时进行从网络上读、向网网络上写吗?
- 使用的是TCP协议。
- Inputstream输入流是从网络读数据。
- Outstream输出流是向网络发送数据。
- 没有出现TCP或UDP协议的细节
- 不可以
5.启动TCPEchoServer.java服务器,然后使用两个客户端(比如两个telnet或两个网络调试助手)同时连接该服务器,可以连接成功吗?为什么?
单一连接。成功
多个连接,不行,显示端口被占用
因为服务器是单线程的,只能处理一个客户端的信息