套接字接受无效参数(c ++)

时间:2018-05-11 13:13:43

标签: c++ sockets

我正在尝试创建一个Web服务器,它将接受来自sockets的请求和命令(在不同的ports中)。我有一些演示code用于简单的套接字通信,它按预期编译和运行,但是当我运行时(用demo作为参考编写,这就是为什么有一些printf's){{1} }失败了:

  

“无效参数”为错误。我找不到有什么不对。

任何建议/更正都表示赞赏。

这是我的代码:

accept()

1 个答案:

答案 0 :(得分:4)

在致电接受之前,你应该打电话给听。

来自accept manual

   EINVAL Socket is not listening for connections, or addrlen is invalid
          (e.g., is negative).

你应该在循环之前添加:

 listen(serv_sock,5);
 listen(command_sock,5);

但是,如果没有待处理的连接,为了不阻止accept来电,您应该考虑使用selectpoll。 这将允许在调用accept

之前检查连接是否处于挂起状态