winsock2.h 예제

위의 예제에서는 먼저 IP 주소에 연결한 다음 문자열 메시지 “GET / HTTP/1.1nnn”을 보냅니다. 메시지는 실제로 웹 사이트의 메인 페이지를 가져오는 http 명령입니다. 다음 코드는 이전에 설명한 Winsock 함수 및 구조를 사용한 서버 및 클라이언트 프로그램 예제입니다. 이 경우 클라이언트-서버 통신을 가능하게 하려면 서버 설정을(인수- 프로토콜, 포트 번호 등을 통해) 클라이언트 설정과 일치시켜야 합니다. 예를 들어 UDP 서버를 실행하도록 선택한 경우 클라이언트도 UDP 클라이언트여야 합니다. 먼저 서버 프로그램을 실행하 시고 다른 컴퓨터에서 클라이언트를 실행할 수 있습니다. 이 예제에서는 로컬 Windows Xp Pro 컴퓨터에서 인수의 기본 값을 사용하여 서버와 클라이언트를 실행했습니다. Winsock2.h 헤더 파일은 내부적으로 Windows.h 헤더 파일의 핵심 요소를 포함하므로 Winsock 응용 프로그램에서 Windows.h 헤더 파일에 대한 #include 줄이 없습니다. Windows.h 헤더 파일에 #include 줄이 필요한 경우 win32_LEAN_AND_MEAN #define 앞에 두어야 합니다. 역사적인 이유로 Windows.h 헤더는 Windows 소켓 1.1에 대한 Winsock.h 헤더 파일을 기본값으로 설정합니다.

Winsock.h 헤더 파일의 선언은 Windows 소켓 2.0에 필요한 Winsock2.h 헤더 파일의 선언과 충돌합니다. WIN32_LEAN_AND_MEAN 매크로는 Winsock.h가 Windows.h 헤더에 포함되지 않도록 합니다. 이를 보여주는 예는 다음과 같습니다. 그래서 위의 예에서 우리는 방법을 배웠습니다 : 1. 소켓 2 만들기. 원격 서버 3에 연결합니다. 일부 데이터 4를 보냅니다. 먼저 응답을 받으면 WSAStartup에서 실제로 한 번만 사용되는 WSADATA 개체를 선언했습니다. 이 기능은 소켓을 사용하려는 컴퓨터에 알려줍니다.

첫 번째 매개 변수인 MAKEWORD(2,0)는 우리가 사용하려는 winsock 버전을 지정하기 위한 것으로, 포함에 따라 다릅니다. 두 번째 매개 변수는 우리가 만든 WSAData 개체의 adress입니다. 이 예제는 MSDN의 `연결` 예제를 기반으로 합니다.

Posted in Uncategorized