第13周 预习、实验与作业:Java网络编程

文章讨论了网络编程中如何通过IP地址、协议和端口进行通信,比较TCP和UDP协议的特性,指出HTTP基于TCP,而UDP适合不重要信息传输。还介绍了Socket编程的使用,以及TCPEchoServer服务器的并发连接限制。
摘要由CSDN通过智能技术生成

 1.编写一个网络程序,为了与其他网络程序通信,至少要知道对方的什么信息?

对方的IP地址, 使用的协议以及端口号

2.TCP与UDP协议有什么不同的呢?什么时候该选择哪种协议?HTTP使用的是TCP还是UDP?不重要的短信息传送之类的功能更适合使用TCP还是UDP?

TCP协议:
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

UDP协议:
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

TCP与UDP的区别:

TCP是面向连接的协议,它通过三次握手建立连接,四次挥手断开连接。而UDP是不面向连接的协议,即发送数据之前不需要建立连接,这种方式为UDP带来了高效的传输效率,但也导致无法确保数据的发送成功。还有,TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。因此,TCP是可靠的通信方式。通过TCP连接传送的数据,TCP通过超时重传、 数据校验等方式来确保数据无差错,不丢失,不重复,且按序到达;而UDP由于无需连接的原因,将会以最大速度进行传输,但不保证可靠交付,也就是会出现丢失、重复等等问题。除此之外,TCP连接只能是点到点的;而UDP不建立连接,所以可以支持一对一,一对多,多对一和多对多的交互通信,也就是可以同时接受多个人的包。

HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,而HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0。

不重要的短信息传送之类的功能更适合使用UDP,比如聊天软件的信息传输等等。

3.打开浏览器浏览某个网页,使用资源监视器查看该浏览器使用了什么端口?(打开路径:任务管理器-性能-打开资源监视器) 。使用“curl -v 某个网址”,查看之间的HTTP通信信息,并做记录。

4.使用Socket进行编程,使用的是TCP还是UDP协议?观察TCPClientTest.java,其输入流、输出流哪个是从网络读数据,哪个是向网络发送数据?程序中有出现TCP或UDP协议的细节吗?观察TCPClientTest.java,该程序可以同时进行从网络上读、向网络上写吗?

使用Socket进行编程,可以同时使用TCP和UDP协议,具体取决于需求。

输出流向网络读数据,输入流向网络发送数据。

没有出现TCP或UDP协议的细节

不可以

5.启动TCPEchoServer.java服务器,然后使用两个客户端(比如两个telnet或两个网络调试助手)同时连接该服务器,可以连接成功吗?为什么?

不能,服务器只能同时接收一个客户端的信息

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值