先谢谢各位了!

解决方案 »

  1.   

    不太明白你说的是什么意思。。我服务器端和客户端都是用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端是同样的道理,就不贴出来了
      

  2.   

    我觉得我代码写的不对,我是有两个客户端,一个服务器端,难道有两个客户端就要在服务器端手动的创建两个子socket吗,那万一有很多客户端他们之间要即时通信怎么办,岂不是要手动创建很多的子socket?另外我现在的代码虽然可以实现两个客户端之间的通信,但做不到即时通信,必须要双方都socket_write之后,才能看到之前彼此都说了些什么,做不到其中一个客户端只要一有socket_write,对方马上就能看到,也就是说做不到即时通信。经理说让我这段时间研究一下socket,目的就是实现在网页上的即时聊天,他说我可以先从简单的两个客户端之间的通信做起,之后再去研究复杂的,但现在简单的我都弄不了唉,我是个php方面的新手,以前在学习php的时候根本都没听说过socket,这几天也看了很多的代码和帖子了,但还是没有头绪,不知道该怎么办了
      

  3.   

    socket 通讯是单工的
    就是说发送和接受是分开在两个通道中进行的
    也就是说,对于你设计的任何通讯节点都必须具有“服务端”和“客户端”
    好别扭的名字,称作“呼叫方”和“应答方”就平等了
      

  4.   

    你可以查查flash p2p  你的需求,不是php能解决的。就算你的例子通过了又当如何?php还不是跑在服务器上?