在C中使用随机源端口打开从客户端到服务器的多个TCP连接

时间:2011-11-18 03:11:02

标签: c sockets

我正在编写一个C程序,对于每个要由服务器处理的新请求,我需要打开一个新的TCP连接?也就是说,客户端的每个请求都需要通过与侦听特定端口的服务器的单独TCP连接来处理。

有人可以帮我解决代码指针吗?

  • 如何维护此套接字标识符的数组(需要打开的多个套接字)
  • 我将如何阅读(需要滚动浏览所有打开的套接字,看看是否有一些有趣的内容在该套接字上阅读)

任何代码段都非常有用吗?

2 个答案:

答案 0 :(得分:1)

您可以使用select()功能(假设您正在使用<sys/socket.h>),“您可以同时监控多个套接字。它会告诉您哪些套件已准备就绪读取,准备写入,以及哪些套接字引发了异常“来自http://beej.us/guide/bgnet/(这里你可以下载一本关于网络编程基础的好书)。

对于使用select check http://beej.us/guide/bgnet/examples/selectserver.c

的服务器示例

希望有所帮助

答案 1 :(得分:0)

如果您需要使用套接字保存状态,请将其与所需数据一起放在struct中,并将这些结构作为列表链接在一起。要检查哪个插座已准备就绪,请参阅Maluchi的答案。