치명적인 오류: 잡히지 않은 오류: 정의되지 않은 함수 socket_create()를 호출하여 E:WebXampphtdocsphp:2 스택 추적: e:WebXampphtdocsindex.php 에서 던져진 #0 {main} 라인 2에서 마지막으로 필요한 것은 연결 기능입니다. 연결하려면 소켓과 양말 구조가 필요합니다. 다음은 코드 샘플입니다. 지금까지 서버 소켓을 준비했지만 스크립트는 실제로 아무 것도 하지 않습니다. 앞서 말한 목표를 유지하면 클라이언트 소켓에서 메시지를 읽은 다음 수신된 메시지를 클라이언트 소켓으로 다시 다시 보냅니다. 우리는 이미 소켓을 여는 방법을 배웠습니다. 그래서 다음 것은 그것을 바인딩하는 것입니다. $socket = 소켓_create(AF_INET, SOCK_STREAM, SOL_TCP); ($socket < 0) { 에코 "socket_create())가 실패한 경우. 이유 : " . [$socket].

“n”; }else {에코 “OK.n”; } 경우(!socket_write($socket, $in, strlen($in)) { 에코 “socket_write()”가 실패했습니다. 이유 : ” . [$socket]. “n”; }else { 에코 “서버에 메시지를 성공적으로 보내기!n”; 에코 “정보 보내기:$in “; } 안녕 선생님, 어떻게 호스트 서버에서 소켓 서버를 시작할 수 있습니다. 공유 서버를 사용하고 있는 경우 이 예제에서 IRC 서버의 데이터를 읽습니다. Function socket_create는 소켓을 만들고 다른 네트워크 명령에서 사용할 수 있는 소켓 설명자입니다. 지금까지 좋은. 그러나 여전히 서버와 클라이언트 간의 효과적인 통신은 없습니다. 서버 프로그램은 루프에서 연결을 허용하고 응답을 보내면 아무 것도 수행하지 않습니다. 또한 한 번에 1 개 이상의 연결을 처리 할 수 없습니다. 이제 연결을 처리하고 여러 연결을 함께 처리할 시간입니다.

소켓에 데이터를 보낼 때 기본적으로 해당 소켓에 데이터를 쓰고 있습니다. 이는 파일에 데이터를 작성하는 것과 유사합니다. 따라서 쓰기 함수를 사용하여 데이터를 소켓으로 보낼 수도 있습니다. 이 자습서의 대명후반부에서는 쓰기 함수를 사용하여 데이터를 전송합니다. 가장 먼저 해야 할 일은 소켓을 만드는 것입니다. socket_create 함수는 이 작업을 수행합니다. 다음은 코드 샘플입니다: 여기서 생성된 소켓 리소스는 IP 주소 및 포트 번호에 바인딩됩니다. 함수 stream_socket_server는 다시 한 번 소켓 사양을 stream_socket_client에 전달된 문자열과 동일한 형식으로 첫 번째 인수로 가져옵니다. 소켓 함수 중 어느 개라도 실패하면 socket_last_error 및 socket_strerror 함수를 사용하여 오류 정보를 검색할 수 있습니다. 서버에 연결하는 것은 함수 stream_socket_client로 수행됩니다.

유일한 필수 인수는 연결하려는 소켓의 사양이며 성공 또는 오류에 대한 리소스를 반환합니다. 따라서 PHP 자습서의 이 소켓에서 프로세스 간 통신 중에 서버 및 클라이언트 프로세스를 이해하려고 노력했습니다. 에코 “$ip` 포트 `$port`를 연결하려고…n”; $result = 소켓_연결($socket, $ip, $port); ($result < 0) { 에코 "socket_connect() 실패.nReason: ($result) " 소켓_strerror($result) . "n"; } {에코 "확인n 연결"; } 소켓은 프로세스 간 통신에 사용됩니다. 프로세스 간 통신은 일반적으로 클라이언트-서버 모델을 기반으로 합니다. 이 경우 클라이언트-서버는 서로 상호 작용하는 응용 프로그램입니다. 클라이언트와 서버 간의 상호 작용에는 연결이 필요합니다. 소켓 프로그래밍은 상호 작용하는 응용 프로그램 간의 연결을 설정하는 것을 담당합니다. 이제 바인딩이 완료되었으므로 소켓이 연결을 수신하도록 할 시간입니다.