[Windows Socket] - Client
2022. 9. 8. 13:55
Development/Network
이번엔 Winsock을 사용하여 Clinet를 간단하게 만들어 볼 생각이다. 지난번 작성한 Server 코드에 비하면 굉장히 간단하다. Client 프로그램을 만드는 순서는 아래와 같다. Winsock을 초기화합니다. 소켓을 만듭니다. 서버에 연결합니다. 데이터를 보내고 받습니다. 연결 끊기를 선택합니다. Server를 만드는 부분에서 bind, listen, accept과 같은 부분들이 빠져있다. Client 소켓을 생성하고 연결 할 IP,Port등을 통해 연결을 시도하면 된다. 1,2,4,5번은 이 전 포스트와 동일하므로 생략하도록 하겠다. 서버에 연결합니다. 우선 연결할 Socket 하나를 생성한다. 접속 요청할 소켓의 정보(address family, IP, Port)를 SOCKADDR_IN 구조..
[Windows Socket] - Server
2022. 9. 8. 13:14
Development/Network
오늘은 지난 포스트에 이어서 Winsock을 사용하여 간단한 server를 만들어보려고 한다. 지난 포스트에서 서버는 아래와 같은 절차가 있다고 언급했다. Winsock을 초기화합니다. 소켓을 만듭니다. 소켓을 바인딩합니다. 클라이언트에 대한 소켓에서 수신 대기합니다. 클라이언트에서 연결을 수락합니다. 데이터를 수신하고 보냅니다. 연결 끊기를 선택합니다. 위와 같은 순서로 한번 만들어 보려고 한다. Winsock을 초기화합니다. 우선 헤더 파일 및 lib 파일과 연결한다. Winsock 초기화에 대한 부분은 저번 포스트에서 다뤘으니 넘어가도록 하겠다. #include #include #include #pragma comment(lib, "ws2_32.lib") int main() { WSADATA wsa..
[Windows Socket] - 시작하기
2022. 9. 8. 11:08
Development/Network
Windows Socket Programming Windows 환경에서 소켓프로그래밍을 공부해보려고 한다. 네트워크 소켓(network socket)은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 인터넷 소켓이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다. 아래와 같은 요소들로 구성되어있다. 인터넷 프로토콜 (TCP, UDP, raw IP) 로컬 IP 주소 로컬 포트 원격 IP 주소 원격 포트 리눅스에서의 소켓 프로그래밍과 거의 동일하다. 하지만 몇가지 더 해줘야 하는것들이 있고, 함수명이 좀 다른 것들이 있다. 우선, 서버와 클라이언트를..