日期:2014-05-16  浏览次数:20690 次

SO_KEEPALIVE socket
今天看到一段代码:
(setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void*)&on, sizeof(on))<0)

这个fd是负责listen的套接字。


为啥是对listen的套接字设置 SO_KEEPALIVE呢?
和accept得到的套接字设置 SO_KEEPALIVE 有什么区别呢?
------解决方案--------------------
这个选项设置在listenfd上,acceptedfd是可以继承的。具体请看UNP vol1。
区别的话,最直观的是如果希望所有连接都设置则不用多次调用。