码迷,mamicode.com
首页 > 其他好文 > 详细

tcp和udp

时间:2017-07-12 01:07:56      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:阻塞   window   丢失   多网卡   lin   循环   服务端   bre   log   

多网卡
1 机器跨网段
2 网卡绑定

TCP和UDP

tcp基于链接通信
1 基于链接,则需要listen(backlog),指定连接池的大小
2 基于链接,必须先运行服务端,然后客户端发起链接请求
3 对于mac系统:如果一端断开了链接,那另外一端的链接也跟着完蛋recv将不会阻塞,收到的是空(解决方法是:服务端在收消息后加上if,空消息就break掉通信循环)
4 对于windows/linux系统:如果一端断开了链接,那另外一端的链接也跟着完蛋recv将不会阻塞,收到的是空,异常(解决方法是:服务端通信循环内加异常处理)

udp无链接
1 无链接,因而无需listen(backlog),更加没有连接池之说了
2 无链接,udp的sendto不用管是否有一个正在运行的服务端,可以己端一个劲的发消息,只不过消息丢失
3 recvfrom收的数据小于sendto发送的数据时,在mac和linux系统上数据直接丢失,在windows系统上发送的比接收的大直接报错
4 只有sendto发送数据没有recvfrom收数据,数据丢失

tcp和udp

标签:阻塞   window   丢失   多网卡   lin   循环   服务端   bre   log   

原文地址:http://www.cnblogs.com/yx179971/p/7153066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!