swoole建立TCP服務端和客戶端

2022-05-04 16:33:10 字數 1238 閱讀 1512

服務端:

server.php

<?php

//建立server物件,監聽 127.0.0.1:9501埠

$serv = new swoole_server("127.0.0.1", 9501);

//監聽連線進入事件

$serv->on('connect', function ($serv, $fd) );

//監聽資料接收事件

$serv->on('receive', function ($serv, $fd, $from_id, $data) );

//監聽連線關閉事件

$serv->on('close', function ($serv, $fd) );

//啟動伺服器

$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))

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

TCP服務端和客戶端(1)

在陳述這個小例項之前,首先將mafile寫出來 makefile all client server all規則,他依賴於client和server規則 client tcp process.o tcp client.o client規則生成客戶端程式 gcc o client tcp proces...

TCP服務端和客戶端 8

在process.c的基礎上,繼續變換方案,將使用到readv和writev。並且使用到向量方式進行資料的傳送和接收。並在收到相應的訊號後釋放資源。include include include include include static struct iovec vs null,vc null ...

TCP服務端和客戶端 9

繼續對process.c 進行改進,用recvmsg和sendmsg來進行替換。將向量掛載到msghdr的msg iov的成員變數上進行操作。include include include include include include include static struct iovec vs ...