合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[info] TCP 与 UDP 服务端代码对比 * TCP 服务端代码 ~~~ $server = new Swoole\Server("127.0.0.1", 9503); $server->on('connect', function ($server, $fd){ echo "connection open: {$fd}\n"; }); $server->on('receive', function ($server, $fd, $reactor_id, $data) { $server->send($fd, "Swoole: {$data}"); $server->close($fd); }); $server->on('close', function ($server, $fd) { echo "connection close: {$fd}\n"; }); $server->start(); ~~~ * UDP 服务端代码 ~~~ $server = new Swoole\Server("127.0.0.1", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP); $server->on('Packet', function ($server, $data, $clientInfo) { $server->sendTo($clientInfo['address'], $clientInfo['port'], "Server ".$data); var_dump($clientInfo); }); $server->start(); ~~~ >[info] TCP(Transmission Control Protocol传输控制协议): * 是一 种面向<span style="color:red;">**连接的、可靠的、基于字节流**</span>的传输层通信协议,使用<span style="color:red;">**三次握手协议建立连接、四次挥手断开连接**。</span>面向连接意味着两个使用TCP的应用(通常是一个客户端和一 个服务器)在彼此交换数据包之前必须先建立一一个TCP连接。在一一个TCP连接中,仅有两方进行彼此通信,<span style="color:red;">**广播和多播不能用TCP。TCP协议的作用是,保证数据通信的完整性和可靠性,防止丢包。**</span>TCP把连接作为最基本的对象,每\-条TCP连接都有两个端点, 这种端点我们叫作<span style="color:red;">**套接字(socket)**</span>,端口号拼接到IP地址即构成了套接字 ***** >[info] UDP(User Datagram Protocol用户数据报协议): * 是OSI(Open System Interconnection开放式系统互联)参考模型中一种<span style="color:red;">**无连接的传输层协议**</span>,提供面向事务的简单<span style="color:red;">**不可靠信息传送服务。**</span>UDP协议的<span style="color:red;">**主要作用是将网络数据流量压缩成数据包的形式。**</span> ***** >[info] TCP 与 UDP对比 1. TCP提供的是<span style="color:red;">面向连接的、可靠的数据流传输; </span>UDP提供的是非面向连接的、不可靠的数据流传输。TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,按序到达; UDP尽最大努力交付,即不保证可靠交付。 2. TCP面向<span style="color:red;">字节流; </span>UDP面向<span style="color:red;">报文。</span> 3. TCP连接只能是点到点的; UDP支持\-对一、一对多 多对一和多对多的交互通信。 4. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。