SERVER.PHP
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
<? php
// 确保在连接客户端时不会超时
set_time_limit ( 0 );
// 设置IP和端口号
$address = 服务器自己的IP;
$port = 端口号;
// 创建一个SOCKET
if (( $sock = socket_create(AF_INET , SOCK_STREAM , SOL_TCP)) < 0 )
{
echo " socket_create() 失败的原因是: " . socket_strerror( $sock ) . " <br> " ;
}
// 绑定到socket端口
if (( $ret = socket_bind( $sock , $address , $port )) < 0 )
{
echo " socket_bind() 失败的原因是: " . socket_strerror( $ret ) . " <br> " ;
}
// 开始监听
if (( $ret = socket_listen( $sock , 4 )) < 0 )
{
echo " socket_listen() 失败的原因是: " . socket_strerror( $ret ) . " <br> " ;
}
do {
if (( $msgsock = socket_accept( $sock )) < 0 )
{
echo " socket_accept() failed: reason: " . socket_strerror( $msgsock ) . " \n " ;
break ;
}
// 发到客户端
$msg = " <font color=red>服务器端发送:欢迎进入服务器!</font><br> " ;
socket_write( $msgsock , $msg , strlen ( $msg ));
echo " 读取客户端发来的信息<br> " ;
$buf = socket_read( $msgsock , 8192 );
$talkback = " 收到的信息 $buf <br> " ;
echo $talkback ;
if (socket_write( $msgsock , $talkback , strlen ( $talkback )) < 0 )
{
echo " socket_write() failed: reason: " . socket_strerror( $msgsock ) . " \n " ;
}
else
{
echo " 发送成功 " ;
}
echo $buf ;
socket_close( $msgsock );
} while ( true );
socket_close( $sock );
?>
CLIENT.PHP
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
<? php
error_reporting ( E_ALL );
set_time_limit ( 0 );
echo " <h2>TCP/IP Connection</h2>\n " ;
$service_port = 服务器端口;
$address = " 服务器IP " ;
$socket = socket_create(AF_INET , SOCK_STREAM , SOL_TCP);
if ( $socket < 0 )
{
echo " socket_create() failed: reason: " . socket_strerror( $socket ) . " \n " ;
}
else
{
echo " OK.\n " ;
}
echo " 试图连接 ' $address ' 端口 ' $service_port '...<br> " ;
$result = socket_connect( $socket , $address , $service_port );
if ( $result < 0 )
{
echo " socket_connect() failed.\nReason: ( $result ) " . socket_strerror( $result ) . " \n " ;
}
else
{
echo " 连接OK<br> " ;
}
$in = " 发送到服务器的信息\r\n " ;
$in .= " 也是发到服务器的\r\n " ;
$out = '' ;
$out1 = '' ;
if ( ! socket_write( $socket , $in , strlen ( $in )))
{
echo " socket_write() failed: reason: " . socket_strerror( $socket ) . " \n " ;
}
else
{
echo " 发送到服务器信息成功!<br> " ;
}
while ( $out = socket_read( $socket , 8192 ))
{
echo " 接收服务器回传信息成功!<br> " ;
echo $out ;
}
echo " 关闭SOCKET...<br> " ;
socket_close( $socket );
echo " 关闭OK<br> " ;
?>