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

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

  1. 基于Internet IP协议
    复用/奋勇
    简单的错误校验
  2. Best effort 服务(尽力服务)
    丢失
    非按序到达
  3. 无连接
    UDP发送和接收前不需要双方建立连接(握手)
    每个UDP段的处理独立于其他段

以上仅为概述,具体了解UDP详细请移步,无连接的用户数据报协议—UDP

下面是搜索到的PHP SOCKET实现基础UDP示例代码:

服务端

<?php
    $socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );

    $ok = socket_bind( $socket, '127.0.0.1', 3380 );

    while ( true ) {
        $from = "";
        $port = 3380;
        socket_recvfrom( $socket, $buf,1024, 0, $from, $port);
        echo $buf;
        usleep( 1000 );
    }

客户端

<?php 
    $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    $msg  = "hello\n";
    $len   = strlen($msg);
    socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 3380);
    socket_close($sock);

运行效果

发表评论

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