Socket에 대하여(2)

code++·2023년 9월 29일

UDP Socket 생성

int socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

AF_INET : Address Family Internet
SOCK_DGRAM : Datagram Socket을 의미
IPPROTO_UDP : UDP 타입 명시

TCP Socket 생성

int socket(AF_INET,SOCK_STREAM,IPPORTO_TCP);

SOCK_STREAM : stream 방식을 socket 의미

TCP Active/Passive Socket

Tcp는 연결하는 과정을 거친다.
1. 연결이 맺어진 상태(active socket)
client : connect() 성공 다음 socket
server : accept() 성공 다음 socket
2. 연결을 맺기 위해 대기 상태(passive socket)
server : listen() 성공 다음 socket

TCP Passive Socket 전환

int listen(sock,backlog숫자); ##아직 연결 맺기전 대기 상태

sock : socket handle
backlog : 연결 완료를 기다리는 대기열 크기(연결 요청을 했는데 아직 완료 되지 않는것들이 몇개까지 기억하고 있을지 결정)

네트워크 byte order : Big Endian

메모리에 서로 다른 endian방식을 host에 보낼때 문제 발생 -> Big endian을 사용

Loop-back 과 No Specific Address

  1. 127.0.0.1 (Loop back) : 내 자신의 주소
    bind() 사용시 127.0.0.1에 묶이는 것을 의미.
  2. 0.0.0.0 : 특별히 정한 것 없이 모든 주소
    bind() 사용시 내가 가진 모든 주소 모두 다 묶는다.
    -> 내가 가진 ip 모든 것을 다 받아준다.
profile
일상

0개의 댓글