我正在linux中用c ++编写客户端服务器程序。我想在我的服务器中使用一种功能,当服务器等待客户端的某些响应时,它不应无限期地等待。但是,如果没有收到客户端30秒内的响应,则应断开客户端连接。有内置功能吗?请帮忙。
答案 0 :(得分:1)
select()
函数允许您等待来自一组给定套接字之一的事件。它还具有超时值,因此如果在该时间内没有事件发生,它将返回。
答案 1 :(得分:1)
或者,如果您不想重新设计整个服务器,请使用SO_TIMEOUT选项查看setsockopt()。不适用于所有平台,包括一些令人惊讶的平台,您必须使用select()。