Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 它';是否可以使用两个不同的套接字(一台服务器)独立地从两个不同的客户端交换数据?_Sockets_Tcp_Network Programming_Client Server - Fatal编程技术网

Sockets 它';是否可以使用两个不同的套接字(一台服务器)独立地从两个不同的客户端交换数据?

Sockets 它';是否可以使用两个不同的套接字(一台服务器)独立地从两个不同的客户端交换数据?,sockets,tcp,network-programming,client-server,Sockets,Tcp,Network Programming,Client Server,我试着做这个,但没有成功。因为,服务器上的代码有一个顺序,例如,如果客户端1有一个“侦听”,客户端2将在客户端2之后建立连接。此外,两个连接成功建立后,“读取”功能的顺序也会干扰数据交换。我的意思是,如果客户机1在客户机2的“读取”函数之前有一个“读取”函数,那么只有在您首先从客户机1接收数据的情况下,您才能从客户机2接收数据。如何在需要时管理从两个客户端接收数据?几乎所有关于套接字的书籍和教程都应该告诉您如何异步使用套接字。通常通过使用select(或类似)函数进行轮询来处理。如果同步使用套接

我试着做这个,但没有成功。因为,服务器上的代码有一个顺序,例如,如果客户端1有一个“侦听”,客户端2将在客户端2之后建立连接。此外,两个连接成功建立后,“读取”功能的顺序也会干扰数据交换。我的意思是,如果客户机1在客户机2的“读取”函数之前有一个“读取”函数,那么只有在您首先从客户机1接收数据的情况下,您才能从客户机2接收数据。如何在需要时管理从两个客户端接收数据?

几乎所有关于套接字的书籍和教程都应该告诉您如何异步使用套接字。通常通过使用
select
(或类似)函数进行轮询来处理。如果同步使用套接字,通常需要生成一个单独的线程来独立处理每个客户端。如果异步使用套接字,则可以使用
select()
(e)poll()
一次轮询多个套接字上的活动,或者在Windows上可以使用重叠的I/O或I/O完成端口。