> PHP 프레임워크 > Swoole > Swoole 클라이언트가 연결할 수 없으면 어떻게 해야 합니까?

Swoole 클라이언트가 연결할 수 없으면 어떻게 해야 합니까?

藏色散人
풀어 주다: 2020-04-10 09:47:21
원래의
3934명이 탐색했습니다.

Swoole 클라이언트가 연결할 수 없으면 어떻게 해야 합니까?

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(&#39;receive&#39;, 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿