php开发socket模仿c/s结构2008-04-18 09:26:48 来源:中国自学编程网 作者:佚名
服务器 <?php // server // 设置错误处理 error_reporting (e_all); // 设置运行时间 set_time_limit (0); // 起用缓冲 ob_implicit_flush (); $ip = "127.0.0.1"; // ip地址 $port = 1000; // 端口号 $socket = socket_create (af_inet, sock_stream, sol_tcp); // 创建一个socket if ($socket) echo "socket_create() successed!\n"; else echo "socket_create() failed:".socket_strerror ($socket)."\n"; $bind = socket_bind ($socket, $ip, $port); // 绑定一个socket if ($bind) echo "socket_bind() successed!\n"; else echo "socket_bind() failed:".socket_strerror ($bind)."\n"; $listen = socket_listen ($socket); // 间听socket if ($listen) echo "socket_listen() successed!\n"; else echo "socket_listen() failed:".socket_strerror ($listen)."\n"; while (true) { $msg = socket_accept ($socket); // 接受一个socket if (!$msg) { echo "socket_accept() failed:".socket_strerror ($msg)."\n"; break; } $welcome = "welcome to php server!\n"; socket_write ($msg, $welcome, strlen ($welcome)); while (true) { $command = strtoupper (trim (socket_read ($msg, 1024))); if (!$command) break; switch ($command) { case "hello": $writer = "hello everybody!"; break; case "quit": $writer = "bye-bye"; break; case "help": $writer = "hello\tquit\thelp"; break; default: $writer = "error command!"; } socket_write ($msg, $writer, strlen ($writer)); if ($command == "quit") break; } socket_close ($msg); } socket_close ($socket); // 关闭socket ?> 客户端 <?php // client // 设置错误处理 error_reporting (e_all); // 设置处理时间 set_time_limit (0); $ip = "127.0.0.1"; // ip 地址 $port = 1000; // 端口号 $socket = socket_create (af_inet, sock_stream, sol_tcp); // 创建一个socket if ($socket) echo "socket_create() successed!\n"; else echo "socket_create() failed:".socket_strerror ($socket)."\n"; $conn = socket_connect ($socket, $ip, $port); // 建立socket的连接 if ($conn) echo "success to connection![".$ip.":".$port."]\n"; else echo "socket_connect() failed:".socket_strerror ($conn)."\n"; echo& 相关文章: |