PHP 마스터에게 PHP가 페이지의 버튼을 클릭하여 소켓의 TCP 데이터를 어떻게 보내는지 문의하세요.

1. 참고 자료

socket_create() 함수에는 프로토콜, 소켓 유형, 공용 프로토콜이라는 세 가지 매개변수가 필요합니다. 소켓_create() 함수는 성공적으로 실행되면 소켓을 포함하는

리소스 유형을 반환합니다. 실패하면 false를 반환합니다.

소켓 함수

함수 이름 설명

함수 이름 설명

socket_accept()는 소켓 연결을 허용합니다.

socket_bind() 소켓을 IP 주소 및 포트에 바인딩합니다.

socket_clear_error() 소켓 오류 또는 마지막 오류 코드를 지웁니다.

socket_close() 소켓 리소스를 닫습니다.

p >

socket_connect()는 소켓 연결을 시작합니다.

socket_create_listen()은 지정된 포트에서 수신 대기하는 소켓을 엽니다.

socket_create_pair()는 미분화된 소켓 쌍을 배열로 생성합니다.

p>

socket_create()는 소켓 데이터 구조를 생성하는 것과 동일한 소켓을 생성합니다.

socket_get_option()은 소켓 옵션을 가져옵니다.

socket_getpeername()은 원격 유사한 호스트를 가져옵니다. ip address

socket_getsockname() 로컬 소켓의 IP 주소를 가져옵니다.

socket_iovec_add() 분산/집계 배열에 새 벡터를 추가합니다.

socket_iovec_alloc() 이 함수는 보내고, 받고, 읽고 쓸 수 있는 iovec 데이터 구조를 생성합니다.

socket_iovec_delete()는 할당된 iovec을 삭제합니다.

socket_iovec_fetch()는 지정된 iovec 리소스의 데이터를 반환합니다.

p>

socket_iovec_free()는 iovec 리소스를 해제합니다.

socket_iovec_set()는 iovec 데이터의 새 값을 설정합니다.

socket_last_error()는 현재 소켓의 마지막 오류 코드를 얻습니다.

p>

소켓_listen()은 지정된 소켓의 모든 연결을 수신합니다.

socket_read()는 지정된 길이의 데이터를 읽습니다.

socket_readv()는 분산/집계 배열에서 데이터를 읽습니다.

socket_recv() 소켓에서 캐시로 데이터를 종료합니다.

socket_recvfrom()은 지정된 소켓의 데이터를 수락합니다. 지정하지 않으면 기본값은 현재 소켓입니다.

socket_recvmsg() from iovec 메시지 수락

socket_select() 다중 선택

socket_send() 이 함수는 연결된 소켓으로 데이터를 보냅니다.

socket_sendmsg() 소켓으로 보내는 메시지

p>

socket_sendto()는 지정된 주소의 소켓으로 메시지를 보냅니다.

socket_set_block()은 소켓을 블록 모드로 설정합니다.

socket_set_nonblock() 소켓을 비블록 모드로 설정합니다.

socket_set_option() 소켓 옵션을 설정합니다.

socket_shutdown() 이 함수를 사용하면 읽기, 쓰기 또는 지정된 소켓을 닫을 수 있습니다.

socket_strerror()는 지정된 오류 번호를 반환합니다. 자세한 오류

socket_write()는 소켓 캐시에 데이터를 씁니다.

socket_writev()는 분산/집계된 캐시에 데이터를 씁니다. 배열

2. 코드:

$sendStr?=?'30?32

?30?34?03?30?33';?//?16진수 데이터

$sendStrArray?=?str_split(str_replace('?',?'',?$sendStr),? 2) ;?//?16진수 데이터를 2개의 배열로 변환

$socket?=?socket_create(AF_INET,?SOCK_STREAM,?getprotobyname("tcp"));?/ /?소켓 생성

if?(socket_connect($socket,?"192.168.1.100",?8080))?{?//연결

for?($j?= ?0;?$j?

socket_write($socket,?chr(hexdec($sendStrArray[$j])));?/ /?그룹별로 데이터 그룹 보내기

}

$receiveStr?=?"";

$receiveStr?=?socket_read($socket,?1024,? PHP_BINARY_READ);?// ?바이너리 형식으로 데이터 수신

$receiveStrHex?=?bin2hex($receiveStr);?//?바이너리 데이터를 16진수로 변환

echo?"client:"?.?$ receiveStrHex;

}

socket_close($socket);?//?소켓 닫기 >