공부한 이야기/윈도우 소켓 프로그래밍
III : 소켓 주소 구조체 다루기
III : 소켓 주소 구조체 다루기 TCP/IP 윈도우 소켓 프로그래밍 을 읽고 정리한 문서입니다 ;) 소켓 주소 구조체 소켓 주소 구조체는 네트워크 프로그램에서 필요한 주소 정보를 담고 있는 구조체이다. 기본이 되는 것은 SOCKADDR 구조체이며, 정의는 다음과 같다. typedef struct sockaddr { u_short sa_family; char sa_data[14]; } SOCKADDR; sa_family는 주소 체계를 나타내는 16비트 정수 값으로서, AF_INET 또는 AF_INET6 등이 될 수 있다. **sa_data**는 해당 주소 체계에서 사용할 주소 정보를 담게 된다. TCP/IP 환경이라면 IP주소와 포트를 담게 된다. 실제 프로그래밍에서는 별도의 소켓 구조체를 사용하게 된..
II : 윈도우 소켓 시작하기
II : 윈도우 소켓 시작하기 TCP/IP 윈도우 소켓 프로그래밍 을 읽고 정리한 문서입니다 ;) 오류 처리 네트워크 프로그램에서는 여러 이유로 오류가 발생할 수 있기에, 함수 호출 시 오류를 체크하여 사용자나 개발자가 이에 따른 적합한 행동을 취할 수 있도록 해야 한다. 이에 따른 세 가지 오류 처리 방식이 존재한다. 오류를 처리할 필요가 없는 경우 함수의 리턴 값이 없거나, 항상 성공하는 일부 소켓 함수 리턴 값만으로 오류를 처리하는 경우 WSAStartup() 함수가 이에 해당한다. 리턴 값으로 오류 발생 여부만 확인하고, 구체적인 내용은 오류 코드를 받아오는 방식 대부분의 소켓 함수가 이 방식을 사용한다. 따라서 소켓에서 발생하는 대부분의 오류는 WSAGetLastError() 함수를 사용하여 오..
I : 네트워크 소켓 프로그래밍
I : 네트워크 소켓 프로그래밍 TCP/IP 윈도우 소켓 프로그래밍 을 읽고 정리한 문서입니다 ;) TCP/IP 프로토콜 개요 호스트는 최종 사용자 응용 프로그램을 수행하는 주체가 되며, 이는 인터넷에 연결된 PC, 노트북, 휴대전화 등이 해당된다. 라우터는 서로 다른 네트워크에 속한 호스트 간에 데이터를 교환할 수 있게 하는 장비다. 이처럼 데이터를 목적지까지 전달하는 일련의 작업을 라우팅이라고 한다. 호스트와 호스트가 통신하려면 정해진 절차와 방법을 따라야 하는데, 이를 통신 프로토콜이라 한다. 인터넷에서 사용하는 핵심 프로토콜은 TCP와 IP로, 이를 TCP/IP 프로토콜이라 한다. 네트워크 접근 계층은 물리적 네트워크를 통한 실제 데이터 송수신을 담당한다. 이는 물리적인 신호를 처리하는 네트워크 ..