swoole创建TCP服务端和客户端
服务端:
server.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php<br> //创建Server对象,监听 127.0.0.1:9501端口 $serv = new swoole_server( "127.0.0.1" , 9501);<br> //监听连接进入事件 $serv-> on ( 'connect' , function ($serv, $fd) { echo "Client: Connect.\n" ; }); //监听数据接收事件 $serv-> on ( 'receive' , function ($serv, $fd, $from_id, $data) {<br> echo "Client: " .$data. ".\n" ; $serv->send($fd, "Server: " .$data. "\n" ); }); //监听连接关闭事件 $serv-> on ( 'close' , function ($serv, $fd) { echo "Client: Close.\n" ; }); //启动服务器 $serv->start();<br> ?> |
客户端:
client.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php<br> //创建Client对象,连接 127.0.0.1:9501端口 $client = new swoole_client(SWOOLE_SOCK_TCP);<br><br> //判断连接是否成功 if (!$client->connect( '127.0.0.1' , 9501, -1)) { exit( "connect failed. Error: {$client->errCode}\n" ); }<br><br> //发送数据接收事件 $client->send( "hello world" );<br><br> //输出服务返回参数 echo $client->recv();<br><br> //连接关闭 $client->close(); ?> |
执行服务端
1 | php server.php |
执行客户端
1 | php client.php |
如果遇到
1 2 3 4 5 6 7 | ERROR swSocket_bind (ERROR 502): bind(127.0.0.1:9501) failed. Error: Address already in use [98] lsof -i:9501 //查看9501对应的端口 kill 2294 //杀掉对应进程 kill -9 2294 //强制杀掉对应进程 |
下面有一些采用原生sockets建立连接的案例:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!