PHP의 소켓 확장을 설치한 후에는 PHP에 포함된 다양한 소켓 기능을 사용할 수 있습니다. 먼저 각 기능의 관련 매개변수와 사용 방법을 알아보세요. 예를 들어 웹소켓을 통해 서버에 연결할 수 있다는 것을 이미 알고 있습니다. 도메인 이름은 192.168.15.192 포트 번호는 9001입니다. 소켓 연결 방법을 이해하려면 전화 걸기 단계를 사용하면 됩니다.
1. ## 먼저 전화를 걸 때 양쪽 모두 전화가 있어야 합니다. 소켓을 사용하려면 양쪽 모두 도메인 이름인 소켓 번호가 있어야 합니다.
$socket_create($domain, $type, $protocal; ); ## Resources Type
$error = 소켓_last_error($socket_create); ## 연결에 성공하면 int(0)가 됩니다. 연결에 실패하면 오류 코드가 반환됩니다.
$strerror = ($error) ## 오류에 대한 텍스트 설명을 읽어보세요
# # 이 함수의 공식 설명에 대한 링크를 넣으세요 http://php.net/manual/en/function.socket-create.php
## 첫 번째 매개변수인 $domain은 지정된 소켓에서 사용할 프로토콜입니다
이 세 가지를 선택할 수 있습니다. 저는 첫 번째 AF_INET을 사용합니다:
AF_INET 인터넷 프로토콜 기반 IPv4
AF_INET6 IPv6 인터넷 기반 프로토콜
AF_UNIX 로컬 통신 프로토콜
## 두 번째 매개변수 $type은 연결 방법입니다
다섯 가지 옵션이 있는데 저는 첫 번째 SOCK_STREAM을 사용합니다.
SOCK_STREAM은 이 유형을 기반으로 순차 소켓 TCP 프로토콜을 제공합니다.
SOCK_DGRAM은 이를 기반으로 데이터 패킷 UDP 프로토콜을 지원합니다. 유형
SOCK_SEQPACKET은 고정된 최대 길이 데이터그램입니다. 순서화된 전송을 제공하고 각 호출 중에 전체 데이터 패킷을 읽습니다.
SOCK_RAW 원시 네트워크 프로토콜 액세스를 제공하고 사용자가 ICMP 요청(예: 터미널 ping 요청)을 수행하는 데 일반적으로 사용되는 프로토콜을 수동으로 구성할 수 있습니다. )
SOCK_RDM은 안정적인 순서를 보장하지 않습니다.
## 세 번째 매개변수 $protocal은 지정된 특정 프로토콜 도메인을 설정하는 것입니다. $name은 문자열이고 "ip"일 수 있습니다. ", "icmp", "ggp", "tcp", "egp", "pup", "udp", "hmp", "xns-idp", "rdp", "rvd", 나는 getprotobyname("tcp를 사용했습니다. "), 6을 반환했는데 이는 SOL_TCP 상수에 해당합니다.
세 번째 매개 변수는 2가지 유형만 있어야 합니다. $name:
SOL_TCP ## 이 상수를 사용하는 이유는 무엇입니까? 테스트 성공
SOL_UDP ## 아직 안해보셨다면 구글링 해주세요...
다른 상수에 대해서는 공식 상수 정의 매뉴얼 http://php.net/manual/en/sockets 을 참고해주세요 .constants.php
2. 상대방에게 전화를 겁니다. 연결 요청을 보내는 것과 같습니다.
$result = 소켓_connect($socket_create, "192.168.15.192", "9001");
## 첫 번째 세 매개변수는 소켓_create의 리소스이고, 두 번째 매개변수는 도메인 이름, 세 번째 매개변수는 포트 번호
3. 정보 읽기
while($out = socket_read($create_socket, $length)){ var_dump($out); }
## 소켓_read에는 2개 이상의 매개변수가 있습니다
첫 번째 매개변수는 create_socket 리소스
입니다.두 번째 매개변수는 받고 싶은 데이터의 길이를 바이트 단위로 씁니다
세 번째 매개변수는 타입으로 생략 가능합니다. 기본값은 PHP_BINARY_READ 상수입니다
위는 웹소켓을 PHP와 연결하는 방법입니다.
하지만 실제 사용 시 브라우저 페이지에서 정보를 정상적으로 읽을 수 없는 경우가 종종 있습니다. 연결을 개선하기 위해 swoole을 사용할 수 있습니다.
위 내용은 MAC의 PHP에서 웹소켓에 대한 연결 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!