close($fd);" puis installez "telnet" via la commande "yum install telnet -y" ; ; enfin, passer "telnet" rétablira la connexion."/> close($fd);" puis installez "telnet" via la commande "yum install telnet -y" ; ; enfin, passer "telnet" rétablira la connexion.">

Maison  >  Article  >  cadre php  >  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 ?

藏色散人
藏色散人original
2020-04-10 09:47:213837parcourir

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

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

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

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); // 注意:官方并不建议在这里关闭掉

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

yum install telnet -y

Comment fonctionner :

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

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

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

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!

Déclaration:
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