在套接字编程中,如果连接关闭,Unix线程将如何从客户端接收套接字关闭事件?
是否有任何API将通知unix线程有关收到的关闭事件?
和Windows一样,我们有WSAEnumNetworkEvents API,它可以获取指定套接字描述符的事件通知。Unix套接字编程中使用的等效API是什么?
请提供查询帮助。
发布于 2010-06-15 12:48:03
您可以在执行读取时跟踪关闭事件。当read
返回0时,套接字关闭(当然是指"Berkeley套接字“)。
//编辑:使用poll
或select
等待某个事件的发生(数据到达、套接字关闭...)。
发布于 2010-06-15 12:44:13
抱歉,没有时间回答,但请查看Beej's Guide to Network Programming
发布于 2010-06-15 12:48:11
你有没有想过使用boost::asio,这样你至少可以在linux和windows之间共享代码。与裸套接字相比,开销并不是很大,而且您可以从更好的语义中获益。boost中的许多部分代码都已进入标准C++,因此代码的质量相当高。
这涉及到重写您的软件,这可能不是一个选项。另一方面,你需要维护一个通用的代码库。
https://stackoverflow.com/questions/3042543
复制相似问题