不太明白你说的是什么意思。。我服务器端和客户端都是用php写的,想先测试一下效果,如果有效果了,就会考虑服务器用php,客户端是浏览器。给你看看我的代码吧 server端: // 设置一些基本的变量 $host="192.168.2.72"; $port=1039;// 设置超时时间 set_time_limit(0);ob_implicit_flush();// 创建一个Socket $socket=socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create socket\n");//绑定Socket到端口 $result=socket_bind($socket,$host,$port) or die("Could not bind to socket\n");// 开始监听链接 $result=socket_listen($socket) or die("Could not set up socket listener\n");while(true){ $spawn1=socket_accept($socket) or die("Could not accept incoming connection\n"); $input1=socket_read($spawn1,1024) or die("Could no read\n");$spawn2=socket_accept($socket) or die("Could not accept incoming connection\n"); $input2=socket_read($spawn2,1024) or die("Could no read\n"); var_dump($input1); var_dump($input2); //向客户端写入响应信息 if($input1){ socket_write($spawn2,$input1,strlen($input1)) or die("Could not write output\n"); } if($input2){ socket_write($spawn1,$input2,strlen($input2)) or die("Could not write output\n"); } // 关闭sockets //socket_close($spawn1); //socket_close($spawn2); //socket_close($socket); }client1端: header("Content-type:text/html;Charset=UTF-8"); $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); //创建一个socket socket_connect($socket,'192.168.2.72',1039); //连接socket socket_write($socket,"2,ni hao,wo shi client1!"); //向socket中写入发送给服务器的数据 $data = socket_read($socket,1024); //读取socket中服务器回复的数据 echo $data; //将读取到的数据打印出来 //socket_close($socket);还有个client2端和client1端是同样的道理,就不贴出来了
server端:
// 设置一些基本的变量
$host="192.168.2.72";
$port=1039;// 设置超时时间
set_time_limit(0);ob_implicit_flush();// 创建一个Socket
$socket=socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create socket\n");//绑定Socket到端口
$result=socket_bind($socket,$host,$port) or die("Could not bind to socket\n");// 开始监听链接
$result=socket_listen($socket) or die("Could not set up socket listener\n");while(true){
$spawn1=socket_accept($socket) or die("Could not accept incoming connection\n");
$input1=socket_read($spawn1,1024) or die("Could no read\n");$spawn2=socket_accept($socket) or die("Could not accept incoming connection\n");
$input2=socket_read($spawn2,1024) or die("Could no read\n");
var_dump($input1);
var_dump($input2);
//向客户端写入响应信息
if($input1){
socket_write($spawn2,$input1,strlen($input1)) or die("Could not write output\n");
}
if($input2){
socket_write($spawn1,$input2,strlen($input2)) or die("Could not write output\n");
}
// 关闭sockets
//socket_close($spawn1);
//socket_close($spawn2);
//socket_close($socket);
}client1端:
header("Content-type:text/html;Charset=UTF-8");
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); //创建一个socket
socket_connect($socket,'192.168.2.72',1039); //连接socket
socket_write($socket,"2,ni hao,wo shi client1!"); //向socket中写入发送给服务器的数据
$data = socket_read($socket,1024); //读取socket中服务器回复的数据
echo $data; //将读取到的数据打印出来
//socket_close($socket);还有个client2端和client1端是同样的道理,就不贴出来了
就是说发送和接受是分开在两个通道中进行的
也就是说,对于你设计的任何通讯节点都必须具有“服务端”和“客户端”
好别扭的名字,称作“呼叫方”和“应答方”就平等了