首先大概了解下计算机网络原理中 TCP 的一些概述
- TCP是一个点对点的通讯机制,只有一个发送端和一个接收端(点对点)。
- TCP是一个可靠的、按顺序的字节流。
- TCP在发送方和接收方缓存。
- TCP是同一连接能够双向传输数据流(全双工)。
- TCP通信双方必须在发送数据之前建立连接,连接的状态在两端中维护,沿途节点中不维护状态(面向连接)。
- TCP拥塞控制和流量控制机制,设置窗口尺寸(流水线机制)。
- TCP在传输层中的段结构是由32bits组成。
以上仅为概述,具体了解TCP详细请移步,面向连接的传输控制协议—TCP。
下面是搜索到的PHP SOCKET实现基础TCP示例代码:
服务端
<?php
$soc = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($soc, '192.168.31.60', 3380);
socket_listen($soc);
$acpt = socket_accept($soc);
echo "Acpt!\n";
while ($acpt) {
$words=fgets(STDIN);
socket_write($acpt,$words);
$hear=socket_read($acpt,1024);
echo $hear;
if("bye\r\n"==$hear){
socket_shutdown($acpt);
break;
}
usleep( 1000 );
}
socket_close($soc);
客户端
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$con=socket_connect($socket,'192.168.31.60',3380);
if(!$con){socket_close($socket);exit;}
echo "Link\n";
while($con){
$hear=socket_read($socket,1024);
echo $hear;
$words=fgets(STDIN);
socket_write($socket,$words);
if($words=="bye\r\n"){break;}
}
socket_shutdown($socket);
socket_close($socket);