参考:http://blog.csdn.net/anda0109/article/details/46655301
SocketService.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php set_time_limit(0); $address = "192.168.1.10"; $port = 3064; $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("socket_create() fail:" . socket_strerror(socket_last_error()) . "/n"); socket_set_block($sock) or die("socket_set_block() fail:" . socket_strerror(socket_last_error()) . "/n"); $result = socket_bind($sock, $address, $port) or die("socket_bind() fail:" . socket_strerror(socket_last_error()) . "/n"); $result = socket_listen($sock, 4) or die("socket_listen() fail:" .socket_strerror(socket_last_error()) . "/n"); echo "OK\nBinding the socket on $address:$port ..."; echo "OK\nNow ready to accept connections.\nListening on the socket ... \n"; do{ $msgsock = socket_accept($sock) or die("socket_accept() failed: reason: " . socket_strerror(socket_last_error()) . "/n"); while(1){ echo "Read client data \n"; $buf = socket_read($msgsock, 8192); echo "Received msg: $buf \n"; if($buf == "bye\n"){ echo ("Close socket now\n"); socket_close($msgsock); //break; exit(); } $msg = "welcome \n"; socket_write($msgsock, $msg, strlen($msg)) or die("socket_write() failed: reason: " . socket_strerror(socket_last_error()) . "/n"); } }while(true); socket_close($sock); ?> 1,1 Top |
SocketClient.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php set_time_limit(0); $host = "192.168.1.10"; $port = 3046; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n"); $connection = socket_connect($socket, $host, $port) or die("Could not connect server\n"); socket_write($socket, "hello socket") or die("write failed\n"); while($buff = soket_read($socket, 1024, PHP_NORMAL_READ)){ echo("Response was:" . $buff . "\n"); echo("input what you want to say to the server:\n"); $text =fgets(STDIN); socket_write($socket, $text); } socket_close($socket); ?> 1,1 All |
服务端启动试试:php SocketServer.php start -d
客户端就放在你本地,用控制台测试