简述基于TCP和UDP的Socket编程的异同

 我来答
匿名用户
推荐于2018-03-21
展开全部
Socket有两种主要的操作方式:面向连接的和无连接的。无连接的操作使用UDP数据报协议,这个操作不需要连接一个目的的socket,它只是简单地投出数据报,快速高效,但缺少数据安全性。面向连接的操作使用TCP协议,一个这个模式的socket必须在发送数据之前与目的地的socket取得一个连接,一旦连接建立了,socket就可以使用一个流接口:打开-读-写-关闭,所有的发送的信息都会在另一端以同样的顺序被接收,面向连接的操作比无连接的操作效率要低,但数据的安全性更高。基于TCP的socket编程是采用的流式套接字(SOCK_STREAM)。基于UDP采用的数据报套接字(SOCK_DGRAM).
流式套接字的设计是针对面向连接的网络应用,在数据传输之前需要预先建立连接,在数据传输过程中需要维持连接,在数据传输结束后需要释放连接。由于采用校验和、确认与超时等差错控制手段,因此流式套接字可以保证数据传输的正确性。
数据报套接字(SOCK_DGRAM)提供无连接的、不可靠的数据传输服务,实际上它是基于TCP/IP协议族中的UDP协议实现的。数据报套接字提供无序、有差错与有重复的数据流服务。数据报套接字的设计是针对无连接的网络应用,在数据传输之前不需要预先建立连接。由于只采用很有限的差错控制手段,因此数据报套接字无法保证数据传输的正确性。
bill76554792
2010-12-22 · TA获得超过954个赞
知道小有建树答主
回答量:723
采纳率:50%
帮助的人:591万
展开全部
tcp是面向连接的,网络上的任意计算机,都要连接到服务器才能和其他的计算机交互。
udp是面向无连接的,不需要服务器也可以交互,只要知道对方的ip和监听端口就行。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanni929
2010-12-23
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
tcp是面向连接的,网络上的任意计算机,都要连接到服务器才能和其他的计算机交互。
udp是面向无连接的,不需要服务器也可以交互,只要知道对方的ip和监听端口就行。。

TCP是一种很保险的链接,需要三次握手,所以数据的发送不会丢失,能根据网络的拥塞自动调整发送的时延,,,而UDP是一种不保险的链接,数据发出去后不管对面会不会收到,多用于语音视频通话中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dyd653996724
2010-12-23 · TA获得超过200个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:175万
展开全部
实现方法 以及API 不同。运用的地方不同。当然主要取决去二者的各自特点。1)TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务;
(2)TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;
(3)也正因为以上特征,UDP具有较好的实时性,工作效率较TCP协议高;
(4)UDP段结构比TCP的段结构简单,因此网络开销也小。

具体二种协议没有好坏,只有适合,有时候二者结合,比如QQ就是两种协议都有,比如组播通信的时候只能用udp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式