본문 바로가기

SOCKET

TCP/IP Socket option "KEEP_ALIVE" TCP/IP 의 SOCKET 옵션인, SO_KEEP_ALIVE 에 대해서 알아보자. TCP/IP 프로토콜은 메세지가 계속 오고 가는 중에는 ACK 를 TCP 헤더에 싣어서 보내기 때문에, TCP 슬라이딩 윈도우에서 슬라이딩 해가면서, 그 연결 상태를 확인 할 수 있다. 그런데, 한동안의 휴지기를 가지고 대기하고 있는 socket 에서는 heartbeat 를 전송하지 않기 때문에, 이 소켓이 연결이 되었는지 안되어 있는지 확인할 방법이 없다. 따라서, 어플리케이션 레벨에서 일반적으로, keep alive 메커니즘을 구현하는 것이 일반적이다. 그런데, TCP 프로토콜 레벨에서, 이 연결 상태를 확인 할 수 있는 소켓 옵션이 있어서, 여기에 이렇게 정리하게 되었다. 그런데, 이 keep alive 메커니즘이란.. 더보기
socket () 소켓프로그래밍 초기화!! #include #include #pragma comment(lib, "wsock32.lib") //C Runtime Library X WS2_32.DLL 을 사용한다 /* int WSAGetLastError() 를 통해 오류 코드를 얻을 수 있다 */ #define errWSA_quit(mes) do{ printf(#mes" error, code = %d\n", WSAGetLastError()); return 0; } while(0); #define errSOCK_quit(mes) do{ printf(#mes" error, code = %d\n", WSAGetLastError()); WSACleanup(); return 0; } while(0); /* 오류 처리 및 프로그램 종료 */ int main(.. 더보기
socket 인자!! #define SOCK_STREAM 1 /* stream socket */ #define SOCK_DGRAM 2 /* datagram socket */ #define SOCK_RAW 3 /* raw-protocol interface */ #define SOCK_RDM 4 /* reliably-delivered message */ #define SOCK_SEQPACKET 5 /* sequenced packet stream */ SOCK_STREAM: TCP 소켓 SOCK_DGRAM: UDP 소켓 SOCK_RAW: RAW 소켓 RAW 소켓은 UNP 책에서 생소켓 이라고 번역하더군요. 자세한 내용은 RAW Socket 검색 하시면 많이 나올 것입니다. 그리고 세번째 인자는 Protocol 값인데 #define.. 더보기