当前位置: 技术问答>linux和unix
问一个linux下TCP/IP实现问题
来源: 互联网 发布时间:2015-05-02
本文导语: 假设我在应用程序中调用receivefrom()或者其它接收函数,而我又把它指定为非阻塞的,这时这个非阻塞函数要试图接收数据,可是这时接收队列中没有数据,这时函数返回。过一会儿,接收队列中有了数据,这时,接...
假设我在应用程序中调用receivefrom()或者其它接收函数,而我又把它指定为非阻塞的,这时这个非阻塞函数要试图接收数据,可是这时接收队列中没有数据,这时函数返回。过一会儿,接收队列中有了数据,这时,接收队列中的数据是把它丢弃,还是放在那不管?
哪位大虾能否给我详细讲解一下这个机制!谢了先!!!
哪位大虾能否给我详细讲解一下这个机制!谢了先!!!
|
应该是保存,除非队列满
|
baochun
|
如果使用TCP,会进行流量控制,接收缓冲区中的数据会保存
如果使用UDP,数据可能会丢失
你可以使用select调用来处理数据到达的异步事件
如果使用UDP,数据可能会丢失
你可以使用select调用来处理数据到达的异步事件
|
保存
|
select(...)
|
好好看看select()函数,你会解决你的问题