首页 文章

客户端连接的多个套接字

提问于
浏览
2

是否可以有多个套接字,可以通过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);

}

3 回答

  • 1
  • 1

    男人 select .

  • 4

    有一些现实世界的例子 . FTP有一个控制和数据端口,使用TCP和多媒体应用程序将使用SIP或RTSP连接进行控制(TCP),并为接收的每个数据流使用多个RTP和RTCP端口(UDP) .

    在unix上使用select或poll,在Windows上有OVERLAPPED apis非抢先地执行此操作 . 或者,这可以通过多个线程完成 .

相关问题