swoole創建TCP服務端和客戶端


服務端:

server.php

<?php
//創建Server對象,監聽 127.0.0.1:9501端口    $serv = new swoole_server("127.0.0.1", 9501);
   //監聽連接進入事件    $serv->on('connect', function ($serv, $fd) {       echo "Client: Connect.\n";    });    //監聽數據接收事件    $serv->on('receive', function ($serv, $fd, $from_id, $data) {
echo "Client: ".$data.".\n";       $serv->send($fd, "Server: ".$data."\n");    });    //監聽連接關閉事件    $serv->on('close', function ($serv, $fd) {       echo "Client: Close.\n";    });    //啟動服務器    $serv->start();
?>

 

客戶端:

 client.php

<?php
//創建Client對象,連接 127.0.0.1:9501端口 $client = new swoole_client(SWOOLE_SOCK_TCP);

//判斷連接是否成功 if (!$client->connect('127.0.0.1', 9501, -1)) { exit("connect failed. Error: {$client->errCode}\n"); }

//發送數據接收事件 $client->send("hello world");

//輸出服務返回參數 echo $client->recv();

//連接關閉 $client->close(); ?>

 

執行服務端

php server.php

 執行客戶端

php client.php

如果遇到

 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服務端和客戶端程序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM