如何从一台服务器连接多个客户端

时间:2013-01-24 05:32:12

标签: php sockets

如何将多个客户端连接到单个服务器,以便在两个客户端之间进行简单的聊天应用程序。 网上我得不到合适的答案, 我应该创建多个套接字或端口, 任何参考或示例代码或指导.. 这是我的服务器代码

$host = "127.0.0.1";
$port = 25003;

// No Timeout 
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
//echo $socket;
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n");
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");

$input = socket_read($spawn, 1024) or die("Could not read input\n");
$output = strrev($input);    

socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n"); 
socket_close($spawn);
socket_close($socket);

1 个答案:

答案 0 :(得分:0)

如果套接字上有多个连接排队,则将使用第一个连接。如果没有挂起的连接,socket_accept()将阻塞,直到连接出现。 如果要在服务器上拥有多个客户端,则必须使用非阻塞。

socket_set_nonblock($socket);