操作步骤:需要一个客户端,服务端,一个模拟发送器
先启动服务端,然后再打开客户端,按F12,点击连接到服务器按钮(显示成功连接),再点击发送接收按钮(此时需要模拟发送器发送数据),就可以完成数据的传输!
缺陷问题:我也是半懂不懂的,代码肯定bug多,我每运行一次,都需要更换两个IP的端口,哎。。。。。。。(因为服务端一直停留在实时传输的死循环里面,导致各种socket不能关闭)

data
4D 53 47 40 52 4C 44 00 73 44 50 53 41 53 4D 53 41 32 30 31 39 30 38 30 31 31 32 35 36 34 35 30 30 30 46 4C 4D 53 47 4D 53 4D E3 07 08 01 0C 38 2D F3 7D 5B 00 FA D3 ED 42 5D 9C 08 42 9A 99 29 C1 00 00 00 00 D4 77 57 3A 05 01 39 2C 31 30 2C 32 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 47 00 00 00 00 00 00
//服务端
<?php
$address = "127.0.0.1";
$port = 9969; //调试的时候,可以多换端口来测试程序!
set_time_limit(0);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_block($sock);
//socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($sock, $address, $port);
socket_listen($sock,4);
do
{
echo "Waiting for Connection...<br>";
//接受一个socket连接
$msgsock = socket_accept($sock); //阻塞
echo "Waiting for Request...\n";
$buf = socket_read($msgsock, 8192); //读取请求
$response = hand_shake($buf);
socket_write($msgsock,$response,strlen($response)); //发送响