java008

基于TCP Socket的C/S通信与基于UDP数据报的C/S通信有哪些区别?Java分别提供了哪些支持?

TCP(Transmission ControlProtocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂。
UDP(User Data Protocol,用户数据报协议)是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。

TCP与UDP的区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

TCP中Java提供了 Socket类 与 ServerSocket类
UDP中Java提供了DatagramSocket类 与 DatagramPacket类

课后习题:


15.1:网络通信协议分七层,各层解决的问题
1、物理层(Physical Layer)在局部局域网上传送数据框(frame),它负责管理电脑通信设备和网络媒体之间的互通。
2、数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。
3、网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。
4、传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。
5、会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
6、表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式。
7、应用层(Application Layer)提供为应用软件而设的界面,以设置与另一应用软件之间的通信。

15.2:TCP和UDP协议的区别:
1、连接方面
TCP面向连接(如打电话要先拨号建立连接)。
UDP是无连接的,即发送数据之前不需要建立连接。
2、安全方面
TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。
UDP尽最大努力交付,即不保证可靠交付。
3、传输效率
TCP传输效率相对较低。
UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。
4、连接对象数量
TCP连接只能是点到点、一对一的。
UDP支持一对一,一对多,多对一和多对多的交互通信。

为什么称TCP是面向连接的可靠协议?因为通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。

15.3:在Java语言当中,网络编程是从协议的什么层次开始的?程序设计时,什么情况下选择Java高层次网络编程,什么情况下选择低层次网络编程?

传输层。
高层次网络编程适用于面向Internet的通信,而低层次网络编程则面向内部网络通信。

15.4:Socket编程时,目的地址和端口号需要在什么地方指出?使用数据报时,又在什么地方指出?

Socket:在创建新的socket对象时
数据报:在DatagramPacket的构造方法中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值