swoole建立TCP服務端和客戶端

服務端:php

server.phphtml

<?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.phpswoole

<?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(); ?>

 

執行服務端socket

php server.php

 執行客戶端tcp

php client.php

若是遇到post

 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創建鏈接的案例:spa

php socket通訊(tcp/udp)code

php編寫TCP服務端和客戶端程序server

相關文章
相關標籤/搜索