編程學(xué)習(xí)網(wǎng) > PHP技術(shù) > swoole > 用代碼教你使用swoole怎么模擬客戶端
2021
08-14

用代碼教你使用swoole怎么模擬客戶端

因?yàn)?a href="http://www.wangchenghua.com/" target="_blank">swoole提供了一套對socket客戶端的封裝,同步阻塞的swoole_client可以用于php-fpm或者apache環(huán)境。同時(shí)swoole的大部分模塊都只能運(yùn)行在CLI模式下,但是對于面向web的應(yīng)用怎么辦?所以,swoole_client是我們與服務(wù)端交互的一個(gè)重要方法。本文就以swoole_client來教大家怎么模擬客戶端


新建一個(gè)Client.php文件。


代碼如下:

// 創(chuàng)建一個(gè)同步阻塞的tcp socket
// 第一個(gè)參數(shù)是表示socket的類型,有下面四種類型選擇,這里選則tcp socket就好
/**
 *     SWOOLE_SOCK_TCP 創(chuàng)建tcp socket
    SWOOLE_SOCK_TCP6 創(chuàng)建tcp ipv6 socket
    SWOOLE_SOCK_UDP 創(chuàng)建udp socket
    SWOOLE_SOCK_UDP6 創(chuàng)建udp ipv6 socket
 */
// 第二個(gè)參數(shù)是同步還是異步
/**
 *     SWOOLE_SOCK_SYNC 同步客戶端
    SWOOLE_SOCK_ASYNC 異步客戶端
 */
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);

// 隨后建立連接,連接失敗直接退出并打印錯(cuò)誤碼
$client->connect('127.0.0.1', 9501) || exit("connect failed. Error: {$client->errCode}\n");
// 向服務(wù)端發(fā)送數(shù)據(jù)
$client->send("hello server.");
// 從服務(wù)端接收數(shù)據(jù)
$response = $client->recv();
// 輸出接受到的數(shù)據(jù)
echo $response . PHP_EOL;
// 關(guān)閉連接
$client->close();

看下模擬結(jié)果

注意到無論是server還是client,都是在CLI下執(zhí)行的。從模擬的結(jié)果中我們也可以清晰的看到client與server交互的整個(gè)過程。但是,相信很多人都會(huì)有疑問,尤其是phper,server和客戶端都這么玩,完全看不到實(shí)際應(yīng)用啊。先慢慢練習(xí)吧,我們這才剛打響與swoole之間的戰(zhàn)役。

以上就是“用代碼教你使用swoole怎么模擬客戶端”的詳細(xì)內(nèi)容,想要了解更多swoole教程歡迎關(guān)注編程學(xué)習(xí)網(wǎng)


掃碼二維碼 獲取免費(fèi)視頻學(xué)習(xí)資料

Python編程學(xué)習(xí)

查 看2022高級編程視頻教程免費(fèi)獲取