我是C中的真正的菜鸟。我正在尝试用C开发自己的锁服务器(仅用于练习)。我有一个问题......让我们假设我们有用C编写的服务器,我们有远程主机通过socket连接到这个服务器。连接启动时 - 我的服务器在内存中创建了指针。远程主机断开连接时是否可以删除此指针?如何捕获断开事件?
谢谢
答案 0 :(得分:0)
当套接字的另一端关闭连接时,read(2)
系统调用将返回零。
答案 1 :(得分:0)
在现实世界的场景中,您无法真正检测到断开连接。相反,你必须:
这意味着“必须”确保连接的系统通常会发送和接收定期的“虚拟”消息,以便比仅通过“常规”流量检测到的更快地检测到连接丢失。
根据您的应用程序,保持活动消息的开销可能不值得付出努力。
您在网络侧的“连接”实际上只是一堆允许您传输和接收的数据结构。 “TCP / IP”的较低“IP”层是无连接的,这意味着在您尝试使用它之前,您将不知道您的模拟“连接”是否可用(或者接收一个包,明确告诉您另一端不会处理更多数据)。