1.编写一个网络程序,为了与其他网络程序通信,至少要知道对方的什么信息?
1.IP地址
2.端口号
2.TCP与UDP协议有什么不同的呢?什么时候该选择哪种协议?HTTP使用的是TCP还是UDP?不重要的短信息传送之类的功能更适合使用TCP还是UDP?
TCP和UDP协议的主要区别在于:
连接方式:TCP是面向连接的协议,UDP是无连接的协议。
数据传输方式:TCP是可靠传输协议,保证数据传输的可靠性和顺序性;UDP是不可靠传输协议,不保证数据传输的可靠性和顺序性。
传输效率:TCP传输效率较低,UDP传输效率较高。
适用范围:TCP适用于要求可靠传输的应用,如文件传输、电子邮件等;UDP适用于实时性要求较高的应用,如视频会议、实时游戏等。
HTTP使用的是TCP协议,因为HTTP要求传输的数据必须可靠,且需要保证数据的顺序性。
不重要的短信息传送之类的功能更适合使用UDP,因为UDP具有低延迟和高效率的特点,可以快速传输数据,而对于数据的可靠性和顺序性要求不高。
3.打开浏览器浏览某个网页,使用资源监视器查看该浏览器使用了什么端口?(打开路径:任务管理器-性能-打开资源监视器) 。使用“curl -v 某个网址”,查看之间的HTTP通信信息,并做记录。
4.使用Socket进行编程,使用的是TCP还是UDP协议?观察TCPClientTest.java,其输入流、输出流哪个是从网络读数据,哪个是向网络发送数据?程序中有出现TCP或UDP协议的细节吗?观察TCPClientTest.java,该程序可以同时进行从网络上读、向网网络上写吗?
- 使用的是TCP还是UDP协议
TCP协议- 观察TCPClientTest.java,其输入流、输出流哪个是从网络读数据,哪个是向网络发送数据
输入流读取数据
输出流发送数据- 程序中有出现TCP或UDP协议的细节吗?
没有出现TCP或UDP协议的细节- 观察TCPClientTest.java,该程序可以同时进行从网络上读、向网网络上写吗?
不可以同时进行从网络上读、向网网络上写
5.启动TCPEchoServer.java服务器,然后使用两个客户端(比如两个telnet或两个网络调试助手)同时连接该服务器,可以连接成功吗?为什么?
不可以,在TCP协议中,服务器端口处于被动监听状态,一次只能与一个客户端建立连接。当第一个客户端连接上服务器后,服务器端口就会被占用,此时其他客户端将无法再与该服务器端口建立新的连接。