소켓

|

소켓

네트워크 망의 연결에 사용되는 도구
네트워크를 통한 두 컴퓨터의 연결

소켓 구분 
1.tcp
전화기에 비유(전화망을 통해서 음성 데이터를 주고받음) 사실상 소켓이나 마찬가지

소켓은 거는 용도의 소켓을 완성하는 방식과
받는 용도의 소켓을 완성하는 방식에 차이가 있음

소켓 생성함수

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

소켓 주소정보 할당(ip 와 port번호)

 #include <sys/socket.h>
int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);
-> 성공시 0, 실패 시 -1 반환

소켓이 연결이 가능한 상태가 되게 하는 함수

 #include <sys/socket.h>
int listen<int sockfd, int backlog);
->성공시 0, 실패시 -1 반환

누군가 데이터의 송수신을 위해 연결 요청을 해오면
다음 함수호출을 통해서 그 요청을 수락함

#include <sys/socket.h>
int accept(int socked, struct sockaddr *addr, socklen_t *addrlen);
->성공시 파일 디스크립터, 실패시 -1 반환

요약
연결요청을 허용하는 소켓생성과정

1단계 소켓생성   socket  함수 호출
2단계 ip주소와 port번호 할당 bind 함수호출
3단계 연결요청 가능상태로 변경 listen 함수호출
4단계 연결요청에 대한 수락 accept 함수호출

(서버 소켓)
연결요청을 수락하는 기능의 프로그램을 지칭함
(전화를 받는)

클라이언트 소켓(전화를 거는)

전화를 거는 기능의 함수
#include <sys/socket.h>
int connect(int sockfd, struct sockaddr *serv_addr, socklen_t addrlen);
->성공시 0, 실패 시 -1 반환

클라이언트 프로그램은
소켓의 생성(socket 함수호출)과 서버로 연결요청(connect 함수호출) 과정만 존재한다.


파일디스크립터
  • 운영체제가 만든 파일또는 소켓의 지칭을 편히 하기 위해서
숫자를 부여한것


2.xxx


'웹관련' 카테고리의 다른 글

br 태그.  (0) 2014.12.23
주소체계와 데이터 정렬  (0) 2013.12.31
프로토콜  (0) 2013.12.31
윈도우 소켓  (0) 2013.12.31
소켓  (0) 2013.12.31
Trackback 0 And Comment 0