實驗socket的時候總是報上面的錯誤
伺服器端用的是php代碼:
error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush(); $address = '127.0.0.1'; $port = 10005; //建立連接埠 if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n"; } //綁定 if (socket_bind($sock, $address, $port) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } //監聽 if (socket_listen($sock, 5) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } do { //得到一個連結 if (($msgsock = socket_accept($sock)) === false) { echo "socket_accepty() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; break; } //welcome 發送到用戶端 $msg = "server send:welcome
"; socket_write($msgsock, $msg, strlen($msg)); echo 'read client message\n'; $buf = socket_read($msgsock, 8192); $talkback = "received message:\n$buf\n"; echo $talkback; if (false === socket_write($msgsock, $talkback, strlen($talkback))) { echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } else { echo 'send success'.PHP_EOL; } socket_close($msgsock); } while (true); //關閉socket socket_close($sock);
用戶端是用html5的socket介面,代碼如下:
ws = new WebSocket("ws://127.0.0.1:10005"); ws.onopen = function() { //var relogin_data = JSON.stringify({"type":"re_login","client_name":"aaaaa"}); ws.send('aaaaaaaaa'); }; ws.onmessage = function(e) { console.log(e); }; ws.onclose = function() { console.log("onclose"); }; ws.onerror = function() { console.log("onerror"); };
回複內容:
實驗socket的時候總是報上面的錯誤
伺服器端用的是php代碼:
error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush(); $address = '127.0.0.1'; $port = 10005; //建立連接埠 if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n"; } //綁定 if (socket_bind($sock, $address, $port) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } //監聽 if (socket_listen($sock, 5) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } do { //得到一個連結 if (($msgsock = socket_accept($sock)) === false) { echo "socket_accepty() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; break; } //welcome 發送到用戶端 $msg = "server send:welcome
"; socket_write($msgsock, $msg, strlen($msg)); echo 'read client message\n'; $buf = socket_read($msgsock, 8192); $talkback = "received message:\n$buf\n"; echo $talkback; if (false === socket_write($msgsock, $talkback, strlen($talkback))) { echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } else { echo 'send success'.PHP_EOL; } socket_close($msgsock); } while (true); //關閉socket socket_close($sock);
用戶端是用html5的socket介面,代碼如下:
ws = new WebSocket("ws://127.0.0.1:10005"); ws.onopen = function() { //var relogin_data = JSON.stringify({"type":"re_login","client_name":"aaaaa"}); ws.send('aaaaaaaaa'); }; ws.onmessage = function(e) { console.log(e); }; ws.onclose = function() { console.log("onclose"); }; ws.onerror = function() { console.log("onerror"); };
服務端改成swoole_websocket_server