SO_KEEPALIVE 的 C 套接字编程

Posted

技术标签:

【中文标题】SO_KEEPALIVE 的 C 套接字编程【英文标题】:C Socket Programming for SO_KEEPALIVE 【发布时间】:2017-02-03 09:52:20 【问题描述】:

我在服务器和客户端之间有一个 TCP 连接。客户端和服务器上没有设置 SO_KEEPALIVE 选项。如果客户端宕机,服务器如何知道客户端是否宕机,如果是,连接是否会终止?

【问题讨论】:

如果您没有 keepalive,您仍然可以使用读取超时,但最终发送时仍会出错。 【参考方案1】:

我假设您的意思是如果客户端突然断开连接并且连接没有正常关闭? 为什么 SO_KEEPALIVE 不是一个选项,因为这可以解决您的问题? 如果没有,您需要实现某种保持活动机制,例如在计时器上发送“你好,我还活着”数据包。

【讨论】:

以上是关于SO_KEEPALIVE 的 C 套接字编程的主要内容,如果未能解决你的问题,请参考以下文章

C/C++ 网络编程4: 基本TCP套接字编程

通过 C 套接字编程的邮件格式

C/C++ 网络编程3: 套接字基础

C套接字编程-只打印一行

C/C++ 网络编程3: 套接字基础

c语言 多线程套接字编程