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_getoptsocket_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_setoptsocket_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 문서를 참고하세요.