swoole클라이언트 연결이 안되면 어떻게 해야 하나요?
클라이언트가 서버에 연결하는 4가지 방법 소개
클라이언트 연결을 위한 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
그런 다음 Firefox를 클라이언트로 사용하고 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 프로토콜의 내용입니다.
왜 브라우저를 통해 접근할 수 있나요?
브라우저는 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
네 가지 클라이언트 연결 방법: 자신만의 소켓 작성
먼저 소켓 확장이 설치되어 있는지 확인하세요.
기본 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);
4가지 클라이언트 연결 방법: Swoole에서 공식적으로 제공하는 클라이언트
https://wiki.swoole.com/wiki/page/p-client .html
으아악위 내용은 Swoole 클라이언트가 연결할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!