【发布时间】:2011-03-22 23:05:29
【问题描述】:
是否可以有多个套接字,可以在一个程序中通过 TCP 或 UDP?
例如: SocketOne:4567端口的TCP套接字; socketTwo:8765 端口的 TCP 套接字; socketThree:7643 处的 UDP 套接字。
家庭将是 AF_INET,地址将是 INADDR_ANY。
我绑定并监听 TCP,只绑定 UDP。
让我怀疑是否要这样做的是,我如何在每个套接字处一起等待客户端。
我知道下面的代码不起作用,但我不知道还有什么或如何解释我想说的话。
while (1)
{
connected = accept(socketOne, (struct sockaddr *)&client_addr,&sin_size);
connected = accept(socketTwo, (struct sockaddr *)&client_addr,&sin_size);
bytes_read = recvfrom(socketThree,recv_data,1024,0,(struct sockaddr *)&client_addr, &addr_len);
}
【问题讨论】:
-
"在一个程序中是否可以有多个套接字,可以通过 TCP 或 UDP 连接?" - 是的当然。但是您的代码没有说明您要问什么 - 什么(例如)是“socketThree”?