首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

socket 编程时,write的写下的数据大于socket缓冲区,会有什么结果?

2012-09-04 
socket 编程时,write的写入的数据大于socket缓冲区,会有什么结果??socket 编程时,write的写入的数据大于so

socket 编程时,write的写入的数据大于socket缓冲区,会有什么结果??
socket 编程时,write的写入的数据大于socket缓冲区,会有什么结果??

[解决办法]
TCP:
1,阻塞fd将会阻塞直到可以发出,如果超过MTU将会分片,这些你都不需要关心,你发多长的数据都行,不会因为数据长而导致致命的错误,会自动分片。

2,非阻塞fd将会返回-1,errno==EAGAIN。

UDP:
1,阻塞fd,如果网卡满会阻塞,如果超过UDP最大包限制将会出错返回-1.
2,非阻塞fd,网卡满返回-1,errno=EAGAIN. 超过UDP最大包限制一样会出错。


网络开发根本没在乎这些, 你只要知道检查返回值,相信返回值和错误码即可,健壮的编程毫无问题。

热点排行
Bad Request.