Maison > cadre php > Swoole > Que dois-je faire si le client swoole ne parvient pas à se connecter ?

Que dois-je faire si le client swoole ne parvient pas à se connecter ?

藏色散人
Libérer: 2020-04-10 09:47:21
original
3935 Les gens l'ont consulté

Que dois-je faire si le client swoole ne parvient pas à se connecter ?

swooleQue dois-je faire si le client ne parvient pas à se connecter ?

Introduction à 4 façons pour les clients de se connecter aux serveurs

Quatre façons pour les clients de se connecter : Connexion au navigateur

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(&#39;receive&#39;, function ($serv, $fd, $from_id, $data) {
    echo $data; //打印 接收到的数据
    $serv->send($fd, "I am swoole"); //发送字符串给客户端
    $serv->close($fd); // 注意:官方并不建议在这里关闭掉
});
//启动服务器
$serv->start();
Copier après la connexion

Regardez attentivement ci-dessus Code, après avoir créé le service, nous avons écouté l'événement de réception de données, imprimé les données reçues, puis généré une chaîne I am swoole.

Exécutez server.php de la même manière, la ligne de commande du terminal sera en "état d'attente" :

php server.php
Copier après la connexion

Ensuite, nous utilisons Firefox comme client et demandons au serveur Swoole : http:/ /10.211.55.15 :9501/

À ce moment, le terminal (serveur) affichera quelque chose de similaire à ce qui suit :

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
Copier après la connexion

C'est exactement le contenu du protocole HTTP.

Pourquoi est-il accessible via un navigateur ?

Le navigateur peut être compris comme un client socket, complétant le processus de transmission grâce à l'interaction avec le protocole HTTP.

Le protocole HTTP (couche application) est basé sur le protocole TCP (couche transport). Lorsque le navigateur envoie une requête, il enverra une "chaîne" conformément aux dispositions du protocole HTTP. terminé, le port sera connecté.

Ci-dessus, nous avons accédé au serveur Swoole via un navigateur. Certains navigateurs peuvent ne pas fonctionner car nous avons simplement généré une chaîne et n'avons pas suivi le protocole HTTP.

Quatre méthodes de connexion client : telnet

Tout d'abord, nous devons légèrement modifier notre code serveur (server.php) et commenter la ligne suivante :

$serv->close($fd); // 注意:官方并不建议在这里关闭掉
Copier après la connexion

If not Pour installer telnet, utilisez la commande suivante pour installer :

yum install telnet -y
Copier après la connexion

Comment fonctionner :

telnet 10.211.55.15 9501
#连接后,敲击键盘`ctrl+]`键,就可以发送消息了,
#比如我们输入
hello
#会紧接着一行显示
I am swoole
Copier après la connexion

Quatre méthodes de connexion client : Écrivez votre propre socket

Tout d'abord, créez assurez-vous que l'extension de socket est installée.

Utiliser le code php natif pour écrire un client 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);
Copier après la connexion

Quatre méthodes de connexion client : Client officiel 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();
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal