大家有没有PHP的SOCKET通信方面的资料或技术.PHP自身的SOCKET存在漏洞。不敢用。想用HTML5的SOCKET呢。现在学习资料找不到。想用FLASH来实现呢。帕HTML5出来。又落后了。想用AJAX呢。感觉这个速度肯定赶不上SOCKET。不晓得Silverlight + PHP 可不可以在LAMP下运行呢?

解决方案 »

  1.   

    这是客户端的
    <?php
    if(isset($_POST['submit']))
    {
    error_reporting(E_ALL);
    set_time_limit(0);
    echo "<h2>TCP/IP Connection</h2><p>";$service_port = 1874; //连接的端口号,与服务端的端口要一致
    $address = "127.0.0.1"; //设置IPif(!($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)))exit; //创建一个SOCKET
    else echo "SOCKET创建OK.<p>";
    echo "试图连接 $address 端口:$service_port...<p>";$result = socket_connect($socket, $address, $service_port); //开始连接
    if ($result < 0)exit;
    else echo "连接OK<p>";$message = $_POST['message']."\r\n"; //想要向服务器传送的消息if(!socket_write($socket, $message, strlen($message)))exit; //开始向服务器传送消息
    else echo "<font color='blue'>向服务器发送信息:$message</font>(<font color='green'>成功!!!</font>)<p>";while($out = socket_read($socket, 8192)) //读取服务器返回的消息
    echo "<font color='red'>接收服务器回传信息:$out</font>(<font color='green'>成功!!!</font>)<p>";echo "正在关闭SOCKET...<p>";
    socket_close($socket);
    echo "SOCKET关闭OK<p>";
    }
    ?> <form method="post">
    <input type="text" name="message">
    <input type="submit" name="submit" value="开启客户端">
    </form>
      

  2.   

    这是服务端的
    <?php
    if(isset($_POST['submit']))
    {
    ignore_user_abort(true);
    set_time_limit(0); //确保在连接客户端时不会超时$address='127.0.0.1'; //设置IP
    $port=1874; //端口号,调试的时候,可以多换端口来测试程序!if(!($sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)))exit; //创建一个SOCKETif(!($ret=socket_bind($sock,$address,$port)))exit; //绑定到socket端口if(!($ret=socket_listen($sock,4)))exit; //开始监听while (true){ //以下是用来接收client(客户)端传来的信息
    flush();
    sleep(1);
    if (!($msgsock = socket_accept($sock)))exit; echo "读取客户端发来的信息<p>"; $buf = socket_read($msgsock,8192); //将接收到的资源$msgsock用socket_read每次8192的大小读到$buf中
    $talkback = "<font color=red>收到的信息:$buf</font><p>";
    echo $talkback; $return_msg = "嗨,尊敬的用户,您好\r\n";
    if(!(socket_write($msgsock, $return_msg, strlen($talkback))<0)) //向client端返回向要的信息(可有可无)
    {
    echo "<font color='blue'>向客户端返回信息为:$return_msg</font><p>";
    }
    socket_close($msgsock);
    };socket_close($sock);
    }
    ?><form action="" method="post">
    <input type="submit" name="submit" value="开启服务器">
    </form>
      

  3.   

    我试过PHP的SOCKET.老是卡起.CPU100%.不晓得什么原因.
      

  4.   

    php socket漏洞?
    HTML5?
    微軟轉行linux了?
    那麽多php客戶端的socket api怎麽就沒見卡呢。
      

  5.   

    不错哟.你这个代码不会报错...我在网上找了那么多.都要报错的.而且CPU会100%.