Sockets
Sockets
BSD 소켓 기반의 저수준 네트워크 통신 인터페이스를 제공하는 확장의 레퍼런스예요. 소켓 서버와 클라이언트를 모두 구현할 수 있어 네트워크 프로그램을 직접 다룰 때 유용합니다.
출처: Sockets
본문
개요
socket 확장은 널리 쓰이는 BSD 소켓을 기반으로 한 소켓 통신 함수들의 저수준 인터페이스를 구현해요. 소켓 서버뿐 아니라 클라이언트로도 동작할 수 있게 해 주죠.
더 범용적인 클라이언트 측 소켓 인터페이스가 필요하다면 stream_socket_client(), stream_socket_server(), fsockopen(), pfsockopen()을 사용할 수 있어요.
이 함수들을 사용할 때 기억해야 할 점이 있어요. 많은 함수가 C 언어의 대응 함수와 이름이 같지만, 선언(declaration)이 다른 경우가 많아요. 혼동을 피하기 위해 각 설명을 꼭 읽어 주세요.
소켓 프로그래밍에 익숙하지 않다면 관련 Unix man 페이지에서 유용한 자료를 많이 찾을 수 있어요. C에서의 소켓 프로그래밍 튜토리얼도 웹에 많고, 대부분 약간의 수정만 거치면 PHP 소켓 프로그래밍에 적용할 수 있죠. Unix Socket FAQ가 좋은 출발점이 될 수 있어요.
Socket 함수
socket_accept— 소켓에서 연결을 수락합니다socket_addrinfo_bind— 주어진 addrinfo로 소켓을 생성하고 바인딩합니다socket_addrinfo_connect— 주어진 addrinfo로 소켓을 생성하고 연결합니다socket_addrinfo_explain— addrinfo에 대한 정보를 가져옵니다socket_addrinfo_lookup— 주어진 호스트명에 대한 getaddrinfo 결과를 배열로 가져옵니다socket_atmark— 소켓이 out-of-band 마크에 있는지 판별합니다socket_bind— 소켓에 이름을 바인딩합니다socket_clear_error— 소켓 또는 마지막 오류 코드의 오류를 지웁니다socket_close— Socket 인스턴스를 닫습니다socket_cmsg_space— 메시지 버퍼 크기를 계산합니다socket_connect— 소켓에서 연결을 시작합니다socket_create— 소켓(통신 엔드포인트)을 생성합니다socket_create_listen— 연결을 수락할 포트에 소켓을 엽니다socket_create_pair— 구분할 수 없는 소켓 쌍을 만들어 배열에 저장합니다socket_export_stream— 소켓을 감싸는 스트림으로 소켓을 내보냅니다socket_get_option— 소켓의 소켓 옵션을 가져옵니다socket_getopt—socket_get_option의 별칭(alias)socket_getpeername— 주어진 소켓의 원격 측을 조회합니다socket_getsockname— 주어진 소켓의 로컬 측을 조회합니다 (유형에 따라 호스트/포트 또는 Unix 파일시스템 경로를 반환)socket_import_stream— 스트림을 가져옵니다socket_last_error— 소켓의 마지막 오류를 반환합니다socket_listen— 소켓에서 연결을 기다립니다socket_read— 소켓에서 최대 length 바이트를 읽습니다socket_recv— 연결된 소켓에서 데이터를 수신합니다socket_recvfrom— 연결 지향 여부와 관계없이 소켓에서 데이터를 수신합니다socket_recvmsg— 메시지를 읽습니다socket_select— 주어진 소켓 배열에 대해 지정된 타임아웃으로 select() 시스템 호출을 실행합니다socket_send— 연결된 소켓으로 데이터를 보냅니다socket_sendmsg— 메시지를 보냅니다socket_sendto— 연결 여부와 관계없이 소켓으로 메시지를 보냅니다socket_set_block— 소켓에 블로킹 모드를 설정합니다socket_set_nonblock— 파일 디스크립터 fd에 논블로킹 모드를 설정합니다socket_set_option— 소켓의 소켓 옵션을 설정합니다socket_setopt—socket_set_option의 별칭(alias)socket_shutdown— 수신, 송신 또는 둘 모두에 대해 소켓을 종료(shutdown)합니다socket_strerror— 소켓 오류를 설명하는 문자열을 반환합니다socket_write— 소켓에 씁니다socket_wsaprotocol_info_export— WSAPROTOCOL_INFO 구조체를 내보냅니다socket_wsaprotocol_info_import— 다른 프로세스에서 Socket을 가져옵니다socket_wsaprotocol_info_release— 내보낸 WSAPROTOCOL_INFO 구조체를 해제합니다
클래스
- Socket — Socket 클래스
- AddressInfo — AddressInfo 클래스
더 알아보기
Sockets 확장의 설치 방법, 리소스 유형, 사전 정의 상수와 예제는 설치·구성, 예제 섹션을 함께 확인해 보세요. 소켓 오류 처리에 대해서는 Socket Errors 문서를 참고하세요.