swooleWas soll ich tun, wenn der Client keine Verbindung herstellen kann?
Einführung in 4 Möglichkeiten für Clients, eine Verbindung zu Servern herzustellen
Vier Möglichkeiten für Clients, eine Verbindung herzustellen: Browserverbindung
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();
Schauen Sie sich oben genau an Code: Nachdem wir den Dienst erstellt haben, haben wir das Datenempfangsereignis abgehört, die empfangenen Daten gedruckt und dann eine I am swoole-Zeichenfolge ausgegeben.
Führen Sie server.php auf die gleiche Weise aus, die Terminal-Befehlszeile befindet sich im „Wartezustand“:
php server.php
Dann verwenden wir Firefox als Client und fordern den Swoole-Server an: http:/ /10.211.55.15 :9501/
Zu diesem Zeitpunkt gibt das (Server-)Terminal etwa Folgendes aus:
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
Das ist genau der Inhalt des HTTP-Protokolls.
Warum kann über einen Browser darauf zugegriffen werden?
Der Browser kann als Socket-Client verstanden werden, der den Übertragungsprozess durch Interaktion mit dem HTTP-Protokoll abschließt.
Das HTTP-Protokoll (Anwendungsschicht) basiert auf dem TCP-Protokoll (Transportschicht). Wenn der Browser eine Anfrage sendet, sendet er nach Abschluss der Anfrage eine „Zeichenfolge“. , der Port wird verbunden.
Oben haben wir über einen Browser auf den Swoole-Server zugegriffen. Einige Browser funktionieren möglicherweise nicht, weil wir einfach eine Zeichenfolge ausgegeben haben und nicht dem HTTP-Protokoll gefolgt sind.
Vier Client-Verbindungsmethoden: Telnet
Zuerst müssen wir unseren Servercode (server.php) leicht ändern und die folgende Zeile auskommentieren:
$serv->close($fd); // 注意:官方并不建议在这里关闭掉
If nicht Um Telnet zu installieren, verwenden Sie den folgenden Befehl zur Installation:
yum install telnet -y
Bedienung:
telnet 10.211.55.15 9501 #连接后,敲击键盘`ctrl+]`键,就可以发送消息了, #比如我们输入 hello #会紧接着一行显示 I am swoole
Vier Client-Verbindungsmethoden: Schreiben Sie Ihren eigenen Socket
Zuerst machen Stellen Sie sicher, dass die Socket-Erweiterung installiert ist.
Verwenden Sie nativen PHP-Code, um einen Client-Client zu schreiben.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);
Vier Client-Verbindungsmethoden: Swoole offizieller Client
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();
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn der Swoole-Client keine Verbindung herstellen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!