91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決swoole客戶端無法連接的問題

發布時間:2021-01-18 14:35:07 來源:億速云 閱讀:202 作者:小新 欄目:編程語言

這篇文章主要介紹了如何解決swoole客戶端無法連接的問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

swoole客戶端無法連接怎么辦?

4種客戶端連接服務器的方式介紹

四種客戶端連接方式:瀏覽器連接

server.php:
<?php
//創建Server對象,監聽 10.211.55.15:9501端口
$serv = new swoole_server("10.211.55.15", 9501); // 10.211.55.15 是我們Swoole服務器地址
//監聽數據接收事件
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    echo $data; //打印 接收到的數據
    $serv->send($fd, "I am swoole"); //發送字符串給客戶端
    $serv->close($fd); // 注意:官方并不建議在這里關閉掉
});
//啟動服務器
$serv->start();

仔細看上面代碼,創建服務之后,我們監聽了數據接收事件,打印接收到的數據,然后輸出一個I am swoole字符串。

同樣的執行server.php,終端命令行會“等待狀態”:

php server.php

然后我們使用火狐瀏覽器作為客戶端,請求Swoole服務器:http://10.211.55.15:9501/

此時(服務器)終端下會輸出類似如下:

GET /favicon.ico HTTP/1.1
Host: 10.211.55.15:9501
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:57.0) Gecko/20100101 Firefox/57.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive

這正是一段HTTP協議內容。

為什么可以通過瀏覽器訪問?

瀏覽器可以理解為一個socket客戶端,通過HTTP協議的交互完成傳輸過程。

HTTP協議(應用層)是建立在TCP協議(傳輸層)基礎之上,瀏覽器發出一次請求,會按照HTTP協議的規定發送“字符串”,請求完成后則端口連接。

上面我們通過瀏覽器的方式來訪問Swoole服務器,可能部分瀏覽器不行,因我們只是簡單的輸出一個字符串,并沒有按照HTTP協議來完成。

四種客戶端連接方式:telnet

首先要稍微修改一下我們服務端代碼(server.php),注釋掉下面這行:

$serv->close($fd); // 注意:官方并不建議在這里關閉掉

如果沒有安裝telnet,使用如下命令安裝:

yum install telnet -y

操作方法:

telnet 10.211.55.15 9501
#連接后,敲擊鍵盤`ctrl+]`鍵,就可以發送消息了,
#比如我們輸入
hello
#會緊接著一行顯示
I am swoole

四種客戶端連接方式:自己寫socket

首先要確定是否安裝了socket擴展。

使用原生的php代碼編寫一個客戶端client.php:

$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_connect($socket,"10.211.55.15", 9501);
socket_write($socket,"hello swoole");
// 讀
$out = socket_read($socket,1024);
echo $out;
socket_close($socket);

四種客戶端連接方式:Swoole官方提供的客戶端

https://wiki.swoole.com/wiki/page/p-client.html

<?php
$client = new swoole_client(SWOOLE_SOCK_TCP);
if (!$client->connect("10.211.55.15", 9501, -1))
{
    exit("connect failed. Error: {$client->errCode}\n");
}
$client->send("hello world\n");
echo $client->recv(); //打印 接收到的數據
$client->close();

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何解決swoole客戶端無法連接的問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

静安区| 福海县| 密山市| 太康县| 绵阳市| 磐安县| 施秉县| 四子王旗| 石渠县| 新乡市| 宁晋县| 彭州市| 抚顺市| 钟祥市| 海丰县| 芒康县| 岫岩| 吉木萨尔县| 滦南县| 杭州市| 南京市| 哈尔滨市| 霞浦县| 朝阳县| 台北市| 格尔木市| 长治市| 囊谦县| 湘阴县| 潍坊市| 兰坪| 南宁市| 新晃| 佛山市| 深泽县| 南漳县| 科技| 南江县| 藁城市| 固始县| 达孜县|