PHP SOCKET 基础的TCP 服务端和客户端

首先大概了解下计算机网络原理中 TCP 的一些概述

  1. TCP是一个点对点的通讯机制,只有一个发送端和一个接收端(点对点)。
  2. TCP是一个可靠的、按顺序的字节流。
  3. TCP在发送方和接收方缓存。
  4. TCP是同一连接能够双向传输数据流(全双工)。
  5. TCP通信双方必须在发送数据之前建立连接,连接的状态在两端中维护,沿途节点中不维护状态(面向连接)。
  6. TCP拥塞控制和流量控制机制,设置窗口尺寸(流水线机制)。
  7. 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);

运行效果

发表评论

邮箱地址不会被公开。 必填项已用*标注