<p> 服务器</p><p> <code><?php<br />// Server<br />// 设置错误处理<br />error_reporting (E_ALL);<br />// 设置运行时间<br />set_time_limit (0);<br />// 起用缓冲<br />ob_implicit_flush ();<br />$ip = "127.0.0.1"; // IP地址<br />$port = 1000;  // 端口号<br />$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);  // 创建一个SOCKET<br />if ($socket)<br />
echo "socket_create() successed!\n";<br />else<br />
echo "socket_create() failed:".socket_strerror ($socket)."\n";<br />$bind = socket_bind ($socket, $ip, $port); // 绑定一个SOCKET<br />if ($bind)<br />
echo "socket_bind() successed!\n";<br />else<br />
echo "socket_bind() failed:".socket_strerror ($bind)."\n";<br />$listen = socket_listen ($socket);  // 间听SOCKET<br />if ($listen)<br />
echo "socket_listen() successed!\n";<br />else<br />
echo "socket_listen() failed:".socket_strerror ($listen)."\n";<br />while (true)<br />{<br />
$msg = socket_accept ($socket);  // 接受一个SOCKET<br />
if (!$msg)<br />
{<br />
echo "socket_accept() failed:".socket_strerror ($msg)."\n";<br />
break;<br />
}<br />
$welcome = "Welcome to PHP Server!\n";<br />
socket_write ($msg, $welcome, strlen ($welcome));<br />
while (true)<br />
{<br />
$command = strtoupper (trim (socket_read ($msg, 1024)));<br />
if (!$command)<br />
break;<br />
switch ($command)<br />
{<br />
case "HELLO":<br />
$writer = "Hello Everybody!";<br />
break;<br />
case "QUIT":<br />
$writer = "Bye-Bye";<br />
break;<br />
case "HELP":<br />
$writer = "HELLO\tQUIT\tHELP";<br />
break;<br />
default:<br />
$writer = "Error Command!";<br />
}<br />
socket_write ($msg, $writer, strlen ($writer));<br />
if ($command == "QUIT")<br />
break;<br />
}<br />
socket_close ($msg);<br />}<br />socket_close ($socket);  // 关闭SOCKET<br />?></code></p><p> 客户端</p><p> <code><?php<br />// Client<br />// 设置错误处理<br />error_reporting (E_ALL);<br />// 设置处理时间<br />set_time_limit (0);<br />$ip = "127.0.0.1";  // IP 地址<br />$port = 1000; // 端口号<br />$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);  // 创建一个SOCKET<br />if ($socket)<br />
echo "socket_create() successed!\n";<br />else<br />
echo "socket_create() failed:".socket_strerror ($socket)."\n";<br />$conn = socket_connect ($socket, $ip, $port);  // 建立SOCKET的连接<br />if ($conn)<br />
echo "Success to connection![".$ip.":".$port."]\n";<br />else<br />
echo "socket_connect() failed:".socket_strerror ($conn)."\n";<br />echo socket_read ($socket, 1024);  <br />$stdin = fopen ('php://stdin', 'r');<br />while (true)<br />{<br />
$command = trim (fgets ($stdin, 1024));<br />
socket_write ($socket, $command, strlen ($command));<br />
$msg = trim (socket_read ($socket, 1024));<br />
echo $msg."\n";<br />
if ($msg == "Bye-Bye")<br />
break;<br />}<br />fclose ($stdin);<br />socket_close ($socket);<br />?></code></p>