云计算百科
云计算领域专业知识百科平台

php案例 TCP服务器协议

在这里插入图片描述

解决方法:启用 Telnet 客户端 打开“控制面板” → “程序” → “启用或关闭Windows功能” 找到“Telnet客户端”,勾选它,点击“确定” 等待安装完成后,重新打开命令提示符(CMD),输入 telnet,如果出现提示说明已安装

第一步 D:>D:\\phpstudy_pro\\Extensions\\php\\php7.4.3nts\\php.exe D:\\phpstudy_pro\\WWW\\1.php(然后不要关闭)

第二步: 另外在开启cmd telnet 127.0.0.1 12345 在这里插入图片描述

1.php

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '0.0.0.0', 12345);
socket_listen($socket);
while ($conn = socket_accept($socket)) {
socket_write($conn, "Hello TCP Client!\\n");
socket_close($conn);
}
socket_close($socket);
?>

解释: 逐行解释 socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 创建一个基于 IPv4(AF_INET)、流式(SOCK_STREAM)、TCP 协议(SOL_TCP)的 socket。 socket_bind(

s

o

c

k

e

t

,

0.0.0.0

,

12345

)

;

s

o

c

k

e

t

绑定到本地所有

I

P

12345

端口上。这样,任何访问本机

12345

端口的

T

C

P

连接都能被这个

s

o

c

k

e

t

接收。

s

o

c

k

e

t

l

i

s

t

e

n

(

socket, '0.0.0.0', 12345); 把 socket 绑定到本地所有 IP 的 12345 端口上。 这样,任何访问本机 12345 端口的 TCP 连接都能被这个 socket 接收。 socket_listen(

socket,0.0.0.0,12345);socket绑定到本地所有IP12345端口上。这样,任何访问本机12345端口的TCP连接都能被这个socket接收。socketlisten(socket); 让 socket 进入监听状态,准备接受客户端的连接。 while (

c

o

n

n

=

s

o

c

k

e

t

a

c

c

e

p

t

(

conn = socket_accept(

conn=socketaccept(socket)) { … } 进入一个死循环,不断等待客户端连接。 每当有客户端连接时,socket_accept 会返回一个新的连接资源

c

o

n

n

s

o

c

k

e

t

w

r

i

t

e

(

conn。 socket_write(

connsocketwrite(conn, “Hello TCP Client!\\n”); 向刚刚连接进来的客户端发送一条消息:“Hello TCP Client!” socket_close(

c

o

n

n

)

;

关闭与当前客户端的连接。

s

o

c

k

e

t

c

l

o

s

e

(

conn); 关闭与当前客户端的连接。 socket_close(

conn);关闭与当前客户端的连接。socketclose(socket); 当循环结束后(一般不会结束),关闭主 socket。 总结 这段代码就是一个TCP服务器,监听 12345 端口。 每当有客户端(比如用 telnet、nc 等工具)连接到这个端口时,服务器会回复一条“Hello TCP Client!”消息,然后断开连接。 适合用来学习 socket 编程的基本原理。

什么是TCP?

  • TCP 是什么? TCP 是一种网络通信协议,属于互联网协议族(TCP/IP协议族)中的核心协议之一。 它主要用于两台计算机之间可靠地传输数据,比如你访问网页、收发邮件、文件传输等,底层都是用 TCP。
  • TCP 的主要特点 面向连接 在通信前,必须先建立连接(三次握手),通信结束后要断开连接(四次挥手)。 可靠传输 数据传输有确认机制、重发机制、顺序控制,保证数据不会丢失、不会乱序。 面向字节流 数据以字节流的方式传输,没有消息边界,应用层需要自己划分消息。 全双工通信 双方可以同时发送和接收数据。
  • TCP 的应用场景 网页浏览(HTTP/HTTPS 协议底层用 TCP) 文件传输(FTP 协议底层用 TCP) 远程登录(SSH、Telnet) 电子邮件(SMTP、POP3、IMAP)
  • TCP 与 UDP 的区别 | 特点 | TCP | UDP | |————–|—————————|————————–| | 是否连接 | 有连接(三次握手) | 无连接 | | 是否可靠 | 可靠,保证顺序和完整性 | 不可靠,可能丢包、乱序 | | 速度 | 较慢 | 较快 | | 应用场景 | 网页、文件、邮件等 | 视频、语音、直播、游戏等 |
  • 形象理解 你可以把 TCP 想象成打电话: 先拨号(建立连接),对方接听后才能说话(数据传输),说完挂电话(断开连接),每句话都能确认对方听到了。 而 UDP 像发短信: 直接发,不管对方收没收到,也不保证顺序。
  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » php案例 TCP服务器协议
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!