选择帮助?

时间:2011-04-03 20:35:08

标签: c sockets select file-descriptor

所以我正在尝试制作一个侦听多个端口的服务器。 我无法理解选择。

有人可以根据我做事的顺序给我一些伪代码以及为什么。

我知道我将两个独立的套接字绑定到不同的端口。当然。但是,我可以在两个端口上调用listen吗?

在我的客户端上,我是否只是呼叫连接,而listen会注意到连接尝试?我如何选择接受它?

对不起新手的问题。我已经尝试过beejs指南和其他几个,但它们并没有真正覆盖多个端口(它们似乎都使用相同的例子)。

谢谢!

2 个答案:

答案 0 :(得分:0)

在服务器上调用bindlisten之后,套接字的fd只是另一个可以与select调用一起使用的fd。当select返回并指示该fd上的数据时,您可以在fd上调用accept以开始接收数据。

编辑:此外,当您accept连接时收到的fd是另一个可以传递给select来电的fd。

答案 1 :(得分:0)

客户端: 你只需要打电话给连接。

服务器端的步骤或多或少如下:

  1. 创建套接字
  2. 绑定套接字
  3. 开始聆听
  4. 将侦听套接字的文件描述符添加到选择
  5. 当侦听套接字上的select返回时,然后调用accept函数。它将返回另一个文件描述符(记得将这个新文件描述符添加到必须通过FD_SET返回的FD列表中)