Sockets socket_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create — 소켓 생성(통신을 위한 끝점)


설명

socket_create(int $domain, int $type, int $protocol): Socket|false

통신의 끝점이라고도 하는 Socket 인스턴스를 만들고 반환합니다. 일반적인 네트워크 연결은 2개의 소켓으로 구성되며, 하나는 클라이언트 역할을 수행하고 다른 하나는 서버 역할을 수행합니다.


매개변수

domain
domain 매개변수는 소켓에서 사용할 프로토콜 패밀리를 지정합니다.

사용 가능한 주소/프로토콜 제품군

Domain 설명
AF_INET IPv4 인터넷 기반 프로토콜. TCP 및 UDP는 이 프로토콜 제품군의 일반적인 프로토콜입니다.
AF_INET6 IPv6 인터넷 기반 프로토콜. TCP 및 UDP는 이 프로토콜 제품군의 일반적인 프로토콜입니다.
AF_UNIX 로컬 통신 프로토콜 제품군. 고효율 및 낮은 오버헤드는 IPC(프로세스 간 통신)의 훌륭한 형태입니다.
type
type 매개변수는 소켓에서 사용할 통신 유형을 선택합니다.

사용 가능한 소켓 유형

Type 설명
SOCK_STREAM 순차적이고 안정적인 전이중 연결 기반 바이트 스트림을 제공합니다. 대역 외 데이터 전송 메커니즘이 지원될 수 있습니다. TCP 프로토콜은 이 소켓 유형을 기반으로 합니다.
SOCK_DGRAM 데이터그램(고정된 최대 길이의 연결이 없고 신뢰할 수 없는 메시지)을 지원합니다. UDP 프로토콜은 이 소켓 유형을 기반으로 합니다.
SOCK_SEQPACKET 고정된 최대 길이의 데이터그램에 대해 순차적이고 안정적인 양방향 연결 기반 데이터 전송 경로를 제공합니다. 소비자는 각 읽기 호출과 함께 전체 패킷을 읽어야 합니다.
SOCK_RAW 원시 네트워크 프로토콜 액세스를 제공합니다. 이 특별한 유형의 소켓은 모든 유형의 프로토콜을 수동으로 구성하는 데 사용할 수 있습니다. 이 소켓 유형의 일반적인 용도는 ICMP 요청(예: ping)을 수행하는 것입니다.
SOCK_RDM 순서를 보장하지 않는 안정적인 데이터그램 계층을 제공합니다. 이것은 운영 체제에서 구현되지 않았을 가능성이 큽니다.
protocol
protocol 매개변수는 반환된 소켓에서 통신할 때 사용할 지정된 domain 내의 특정 프로토콜을 설정합니다. getprotobyname()을 사용하여 이름으로 적절한 값을 검색할 수 있습니다. 원하는 프로토콜이 TCP 또는 UDP인 경우 해당 상수 SOL_TCPSOL_UDP도 사용할 수 있습니다.

공통 프로토콜

Name 설명
icmp 인터넷 제어 메시지 프로토콜은 주로 게이트웨이와 호스트에서 데이터그램 통신의 오류를 보고하는 데 사용됩니다. "ping" 명령(대부분의 최신 운영 체제에 있음)은 ICMP의 예제 응용 프로그램입니다.
udp 사용자 데이터그램 프로토콜은 고정된 레코드 길이를 가진 연결이 없고 신뢰할 수 없는 프로토콜입니다. 이러한 측면으로 인해 UDP에는 최소한의 프로토콜 오버헤드가 필요합니다.
tcp 전송 제어 프로토콜은 안정적인 연결 기반의 스트림 지향 전이중 프로토콜입니다. TCP는 모든 데이터 패킷이 전송된 순서대로 수신되도록 보장합니다. 통신 중에 패킷이 손실되면 TCP는 대상 호스트가 해당 패킷을 확인할 때까지 자동으로 패킷을 재전송합니다. 안정성과 성능상의 이유로 TCP 구현 자체는 기본 데이터그램 통신 계층의 적절한 옥텟 경계를 결정합니다. 따라서 TCP 응용 프로그램은 부분 레코드 전송 가능성을 허용해야 합니다.

반환 값

socket_create()는 성공 시 Socket 인스턴스를 반환하고 오류 시 false를 반환합니다. 실제 오류 코드는 socket_last_error()를 호출하여 검색할 수 있습니다. 이 오류 코드는 오류에 대한 텍스트 설명을 얻기 위해 socket_strerror()에 전달될 수 있습니다.


오류/예외

유효하지 않은 domain이나 type이 제공되면 socket_create()는 각각 AF_INETSOCK_STREAM으로 기본 설정되고 추가로 E_WARNING 메시지를 내보냅니다.


변경 로그

버전 설명
8.0.0 성공하면 이 함수는 이제 Socket 인스턴스를 반환합니다. 이전에는 리소스가 필요했습니다.

기타