且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

多个插座客户端连接到

更新时间:2022-10-15 14:27:23

您需要的选择功能:的 http://linux.die.net/man/2/select

更人性化: http://beej.us /guide/bgnet/output/html/singlepage/bgnet.html#select

Is it possible to have multiple sockets, which can either by TCP or UDP in one program?

For example: SocketOne: TCP socket at port 4567; socketTwo: TCP socket at port 8765; socketThree: UDP socket at 7643.

The families will be AF_INET, and addresses will be INADDR_ANY for each.

I bind and listen for TCP, and just bind for UDP.

What makes me doubt being about to do this is, how do I wait for a client at each socket together.

I know that the code below won't work, but I don't know what else, or how to, explain what I'm trying to say.

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);

}

You need the select function: http://linux.die.net/man/2/select

More user-friendly: http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#select