当前位置: 技术问答>linux和unix
请问下TCP在accept后的操作
来源: 互联网 发布时间:2017-02-11
本文导语: 大家好,刚开始学linux 的网络编程, 现在想编写一个简单TCP的服务器程序,思路是:先建立socket,设置为:非阻塞,发送和接收超时时间,设置发送和接收buffer大小,设置SO_LINGER; 我的问题是,在服务器程序的accept()函数执行后,会...
大家好,刚开始学linux 的网络编程,
现在想编写一个简单TCP的服务器程序,思路是:先建立socket,设置为:非阻塞,发送和接收超时时间,设置发送和接收buffer大小,设置SO_LINGER;
我的问题是,在服务器程序的accept()函数执行后,会返回一个socketid 这个客户端的socketid 我是不是需要对它进行 一些选项的操作,如设置非阻塞等等, 如果这样的话,我是不是每accept到一个socket,我都需要对他们进行这样的处理,谢谢!
现在想编写一个简单TCP的服务器程序,思路是:先建立socket,设置为:非阻塞,发送和接收超时时间,设置发送和接收buffer大小,设置SO_LINGER;
我的问题是,在服务器程序的accept()函数执行后,会返回一个socketid 这个客户端的socketid 我是不是需要对它进行 一些选项的操作,如设置非阻塞等等, 如果这样的话,我是不是每accept到一个socket,我都需要对他们进行这样的处理,谢谢!
|
应该是不用
记得accept返回的描述符继承了监听描述符的选项
记得accept返回的描述符继承了监听描述符的选项
|
是阻塞的。
If no messages are available at the socket, the receive calls wait for a message to arrive, unless the socket is nonblocking (see fcntl(2)), in which
case the value -1 is returned and the external variable errno set to EAGAIN. The receive calls normally return any data available, up to the requested
amount, rather than waiting for receipt of the full amount requested.