一.编写一个网络程序,为了与其他网络程序通信,至少要知道对方的什么信息?
- IP 地址:目标计算机的网络地址。
- 端口号:目标计算机上的应用程序监听的端口。
二.TCP与UDP协议有什么不同的呢?什么时候该选择哪种协议?HTTP使用的是TCP还是UDP?不重要的短信息传送之类的功能更适合使用TCP还是UDP?
- TCP(传输控制协议)和UDP(用户数据报协议)**是两种常见的传输层协议,它们的区别在于可靠性和性能:
- TCP(Transmission Control Protocol):
- 可靠性:TCP 是一种面向连接的协议,它通过建立连接、数据确认、重传机制等方式确保数据的可靠传输。
- 流量控制与拥塞控制:TCP 会根据网络的拥塞情况调整传输速率,防止网络过载。
- 适用场景:适用于需要高可靠性的场景,例如文件传输(FTP)、电子邮件(SMTP)、网页浏览(HTTP)。
- UDP(User Datagram Protocol):
- 无连接:UDP 是一种无连接的协议,它发送数据时不需要建立连接,不保证数据到达,也不进行流量控制。
- 高效性:由于没有连接建立和维护的开销,UDP 在性能上更高效。
- 适用场景:适用于对实时性要求较高而对可靠性要求较低的场景,例如视频流、实时语音、在线游戏等。
- 选择时机:
- 当需要数据可靠传输,并且对延迟不太敏感时,选择 TCP。
- 当实时性要求高,且可以容忍丢包时,选择 UDP。
- HTTP(超文本传输协议)**使用的是 TCP 协议。HTTP 是一个面向连接的协议,需要确保数据的完整性和顺序传输,因此必须使用可靠的 TCP 协议。每次与 HTTP 服务器建立连接时,客户端会通过 TCP 建立一个可靠的连接,确保数据传输的可靠性。
- 对于不重要的短信息传送,通常更适合使用 UDP,因为UDP 协议的开销较小,没有建立连接的过程,也没有确认和重传机制,适合用于传送不重要的、丢失一点数据也不影响的短信息。例如实时视频、语音、DNS 查询等,UDP 可以提供更高的传输速度,减少延迟。
三. 打开浏览器浏览某个网页,使用资源监视器查看该浏览器使用了什么端口?(打开路径:任务管理器-性能-打开资源监视器) 。使用“curl -v 某个网址”,查看之间的HTTP通信信息,并做记录
应该是这个
四.使用Socket进行编程,使用的是TCP还是UDP协议?观察TCPClientTest.java,其输入流、输出流哪个是从网络读数据,哪个是向网络发送数据?程序中有出现TCP或UDP协议的细节吗?观察TCPClientTest.java,该程序可以同时进行从网络上读、向网络上写吗?
呃,没搜到这个文件,下道题也是没搜到