본문 바로가기
Computer Science/컴퓨터 네트워크

컴퓨터 네트워크 실습

by 청량리 물냉면 2021. 10. 16.
반응형

<Server>

소켓 생성 (전화기 생성)

#include <sys/socket.h>
int socket(int domain, int type, int protocol);
  • 성공 시 파일 스크립터, 실패 시 -1 반환

 

소켓의 주소 할당 및 연결 (전화기에 번호 부여)

#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);
  • sockfd: 소켓번호
  • struct sockaddr *myaddr: 주소(ip, port) 구조체
  • 성공 시 0, 실패 시 -1 반환

 

연결요청이 가능한 상태로 변경 (전화 받기 가능)

#include <sys/socket.h>
int listen(int sockfd, int backlog);
  • 일반 소켓을 서버소켓으로 바꿔줌.
  • 일반 소켓은 걸 수만 있고 받을 수는 없음. listen함수를 이용해 조작해 주어야만 서버소켓이 됨.
  • 성공 시 0, 실패 시 -1 반환

 

연결요청의 수락 (전화 받아서 새 소켓 return)

#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, sockeln_t *addrlen);
  • 연결 요청이 있을 때에만 accept 함수가 반환을 한다.
  • sockfd: 최초의 소켓(연결요청만 받음)
  • 성공 시 파일 디스크립터(새로운 소켓 리턴), 실패 시 -1 반환

 

 

<Client>

연결 요청 (전화 걸기)

#include <sys/socket.h>
int connect(int sockfd, struct sockaddr *serv_addr, socklen_t addrlen);
  • sockfd: 클라이언트 소켓
  • struct sockaddr *serv_addr: 접속할 주소 ip, port num 정보를 담고 있는 구조체
  • 성공 시 0, 실패 시 -1 반환

 

반응형