[[프로그래밍_NOTE]]/Window Programing 26

SOCKET (소켓) , SOCKET ADDRESS (소켓주소)

SOCKET (소켓) 네트워크 전송에서 프로세스들의 통신을 위한 최종점 오브젝트(OBJECT) , 소켓은 데이터 그램이나 스트림 타입이며 지정된 네트워크 주소로 묶일수 있다. 소켓은 윈도우즈 소켓 연결을 다루기 위한 어플리케이션 프로그래밍 인터페이스 (API) 를 제공한다. SOCKET ADDRESS (소켓주소) 각 소켓 객체는 네트워크상에서 인터넷 프로토콜 주소(IP Address)로 조합된다. 보통 주소는 ftp.microsoft.com의 머신 이름이거나 "128.56.22.8"과 같이 점으로 구분되어지는 숫자로 표현된다. /* 보통은 소켓을 만들기 위해 검색을 할 때 일일이 주소를 지정할 필요는 없다. 중요한 것은 시스템이 복수의 네트워크 카드를 사용하거나 또는 우리가 만든 어플리케이션이 언젠가는 ..

소켓에 주소 정보 할당

/***************************************** 참고 : TCP/IP 소켓 프로그래밍 윤성우 | 저 ******************************************/ int bind(int sockfd , struct sockaddr * myaddr , int addrlen); sockfd - 주소를 할당하고자 하는 소켓의 파일디스크립터 myaddr - 할당하고자 하는 주소 정보를 지니고 있는 구조체 sockaddr_in 의 포인터 addrlen - 인자로 전달된 주소 정보 구조체의 길이 결과 : sockfd가 가리키는 소켓에 myaddr이 가리키는 주소 정보 할당

인터넷 주소 초기화

/************************************* 참고 : TCP/IP 소켓 프로그래밍 윤성우|저 **************************************/ // 일반적인 코드 struct sockaddr_in addr; char * serv_ip = "192.168.0.113"; char * serv_port = "8888"; memset(&addr , 0 , sizeof(addr_len)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(serv_ip); addr.sin_port = htons(atoi(serv_port)); // 개량형 struct sockaddr_in addr; char * serv_por..

인터넷 주소조작 함수

/*********************************************** 참고 : TCP/IP 소켓 프로그래밍 / 윤성우 | 저 ************************************************/ ● unsigned long inet_addr(const char * string); // Dotted-Decimal Notation 을 Big-Endian 32 (network-byte-ordering) 비트 값으로 변환 // 사용자가 return 값을 sockaddr_int 구조체의 int_add에 대입하여야 한다. ● int inet_aton(const char * string , struct in_addr * addr); // inet_addr 함수 보다 개선된 데이터..

네트워크 바이트 순서

/*********************************************** 참고 : TCP/IP 소켓 프로그래밍 / 윤성우 | 저 ************************************************/ [1]. 시스템이 내부적으로 데이터를 처리하는 방식 2가지 // (1). Big - Endian 표현 ┌───┬───┬───┬───┐ │ 0x12 │ 0x34 │ 0x56 │ 0x78 │ //ex : Motorola 68000계열 └───┴───┴───┴───┘ (2). Little - Endian 표현 ┌───┬───┬───┬───┐ │ 0x78 │ 0x56 │ 0x34 │ 0x12 │ //ex : Intel X86 계열 └───┴───┴───┴───┘ /* 데이터를 상이하..

[ Windows 기반의 Hello World! 클라이언트 프로그램 ]

/************************************************************************ helloworld_client_win.c Written by SW.Yoon 참고 : TCP/IP 소켓 프로그래밍 / 윤성우 | 저 - 컴파일전 반드시 ws2_32.lib 라이브러리를 링크시켜야 한다. - argument 값으로 를 넘겨줘야 한다. ************************************************************************/ #include #include #include #include void ErrorHandling(char* message); int main(int argc , char ** argv) { WSAD..

[ Windows 기반의 Hello World! 서버 프로그램 ]

/************************************************************************ helloworld_server_win.c Written by SW.YOON 참고 : TCP/IP 소켓 프로그래밍 / 윤성우 | 저 - 컴파일전 반드시 WS2_32.lib 라이브러리를 링크시켜야 한다. - argument값으로 가 필요하다. ************************************************************************/ #include #include #include #include void ErrorHandling(char *message); int main(int argc , char **argv) { WSADATA w..