응용 프로그램은 WSAStartup 함수가 호출될 때마다 WSACleanup 함수를 호출해야 합니다. 예를 들어 응용 프로그램이 WSAStartup을 세 번 호출하는 경우 WSACleanup을 세 번 호출해야 합니다. WSACleanup에 대한 처음 두 호출은 내부 카운터를 분리하는 것 외에는 아무 것도 하지 않습니다. 작업에 대한 최종 WSACleanup 호출은 작업에 필요한 모든 리소스 할당 할당을 수행합니다. 다음 프로그램 예제는 이 장에서 만든 모든 서버/수신기 프로그램을 테스트하는 데 사용되는 클라이언트입니다. 이 프로그램은 TCP 프로토콜을 사용합니다. Winsock 루틴을 호출하기 전에 먼저 WSAStartup 함수를 호출하여 라이브러리를 초기화해야 합니다. 이 함수에는 WSADATA 구조에 대한 포인터가 필요합니다. WSAStartup에 대한 호출이 구조의 모든 필드를 채우기 때문에 이 구조를 초기화할 필요가 없습니다. 선택적으로 이 구조의 값을 읽고 프로그램에서 결과를 사용할 수 있습니다. 그러나 이것은 필요하지 않습니다.

또한 WSAStartup에서는 사용하려는 winsock 버전을 지정해야 합니다. winsock의 최신 버전은 버전 1.1, 라이브러리의 최신 버전은 버전 2.0 이지만. 이 매개 변수를 지정하려면 주 및 부 버전을 MAKEWORD 매크로에 전달합니다. 다음은 위의 예에서 IP 주소에 먼저 연결한 다음 문자열 메시지 „GET / HTTP/1.1nnn”을 보냅니다. 메시지는 실제로 웹 사이트의 메인 페이지를 가져오는 http 명령입니다. 훌륭한 튜토리얼이지만 스레드의 코드 예제는 어디에 있습니까? 연결 처리 섹션에 빈 상자가 표시됩니다. 이 예제의 경우 라이브러리 이름을 입력합니다. 그런 다음 확인 단추를 두 번 클릭하여 모든 프로젝트 속성 페이지를 닫습니다. 다음 프로그램 예제에서는 서버/수신기 프로그램에 select()를 사용하는 것을 보여 줍니다. 왼쪽 창에서 프로젝트 이름인 루트 폴더를 확장한 다음 링크 탭을 선택합니다. 개체/라이브러리 모듈의 끝: 필드, 아래와 같이 라이브러리 이름을 입력합니다.

확인 버튼을 클릭하여 프로젝트 설정 페이지를 닫습니다. 그런 다음 다음에 있는 프로그램 예제를 컴파일하고 실행할 준비가 되었습니다. 모든 예제는 디버그 모드에서 성공적으로 컴파일되고 실행됩니다. 릴리스 모드로 실행하는 경우 연결 프로세스와 관련된 몇 가지 오류가 있지만 여기서는 문제가 되지 않습니다. 그래서 위의 예에서 우리는 방법을 배웠습니다 : 1. 소켓 2 만들기. 원격 서버 3에 연결합니다. 일부 데이터 4를 보냅니다. 응답을 받으십시오 일부 단계는 서버와 클라이언트와 비슷합니다. 이러한 단계는 거의 동일하게 구현됩니다. 이 가이드의 단계는 생성되는 응용 프로그램의 유형에 따라 다릅니다.

Windows Sockets 2에서 사용할 수 있는 몇 가지 관련 기능, 구조 및 매크로를 살펴보고 프로그램 예제의 사용을 살펴보겠습니다. 함수 recv는 소켓에서 데이터를 수신하는 데 사용됩니다. 다음 예제에서는 마지막 예제와 동일한 메시지를 보내고 서버로부터 회신을 수신합니다. 당신은 winsock에 대한 좋은 책 (예와 함께)을 제안 할 수 있습니까? 다음 프로그램 예제에서는 하나의 TCP/IP 연결을 허용할 수 있는 간단한 서버를 작성하는 방법을 보여 줍니다. 코드를 읽는 것이 혼동을 줄 수 있도록 호출에 대한 전체 오류 검사를 수행하지 않았습니다. 안녕! 이 위대한 코드에 대한 모든 감사의 첫 번째 :) 나는 어떤 이유로, 나는 연결 처리 지침을 볼 수 없습니다, 여기에 약간의 문제가 … 이 turorial 예를 들어 PDF 형식으로 다운로드 할 수 있습니까? 정말 고마워요! 함수 전송은 단순히 데이터를 전송합니다.