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建立连接的案例:

php socket通信(tcp/udp)

php编写TCP服务端和客户端程序

posted @   程序生(Codey)  阅读(4290)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示