소켓은 ip 주소와 포트 번호를 갖고 있는 인터페이스
소켓 통신 주요 함수:
socket(int domain, int type, int protocol)
: 소켓을 만드는 함수로 반환 값은 파일 디스크립터. 실패시 -1 반환.
connect(int fd, struct sockaddr *remote_host, socklen_t addr_length)
: 원격 호스트(원격 컴퓨터)와 연결하는 함수. 연결된 정보는 remote_host에 저장되며, 성공시 0, 오류시 -1 반환.
bind(ift fd, struct sockaddr *local_addr, socklen_t addr_length)
: fd로 넘겨지는 소켓과 이 프로세스를 바인딩 -> 해당 프로세스는 소켓을 통해 다른 컴퓨터로부터 연결을 받아들임.
listen(int fd, int backlog_queue_size)
: 소켓을 통해 들어오는 연결을 들음. backlog_queue_size만큼 연결 요청을 큐에 넣음. 성공시 0, 오류시 -1 반환.
accept(int fd, sockaddr remote_host, socklen_taddr_length)
: 어떤 컴퓨터에서 이 컴퓨터로 연결시 연결을 받아들임. 연결된 원격 컴퓨터의 정보는 remote_host에 저장됨.
send(int fd, void* buffer, size_t n, int flags)
: buffer를 소켓 파일 디스크립터인 fd로 전송. 보낸 바이트 수를 반환.
recv(int fd, void* buffer, size_t n, int flags)
: send 함수와 사용법 거의 비슷. n 바이트를 buffer로 읽음. 성공시 받은 바이트 수 반환.
출처:
리눅스 소켓 통신
Socket 클래스의 주요 메서드 :
ServerSocket:
출처:
소켓 프로그래밍