21,893
社区成员




<?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"; //设置IP
if(!($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>
<?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; //创建一个SOCKET
if(!($ret=socket_bind($sock,$address,$port)))exit; //绑定到socket端口
if(!($ret=socket_listen($sock,4)))exit; //开始监听
//do { //以下是用来接收client(客户)端传来的信息
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);
//} while (true);
socket_close($sock);
}
?>
<form action="" method="post">
<input type="submit" name="submit" value="开启服务器">
</form>