Шаг 2 - Инициализация

Создавайте проект Win 32 Console с именем WinSock1, на вопрос о типе в диалоговом окне скажите "Hello Word" application. После этого есть необходимость подключения LIB файла. Это делается в меню Project далее Setting, далее Link и Object/library modules. Туда надо вписать Wsock32.lib. Вот как это выглядит.

gif/2_1.gif (4795 b)

А вот и код программы.

// WinSock1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "winsock.h"


const int WINSOCK_VERSION = 0x0101;

void main()
{
	WSADATA wsaData;

	if (WSAStartup(WINSOCK_VERSION, &wsaData)) 
	{
		printf ("winsock not bi initialized !\n");
		WSACleanup();
	}
	else printf("Winsock initial OK !!!!\n");
	
	if (WSACleanup())
		printf("Error Cleapir\n");
	else
		printf("Cleapir Good !!!!!\n");
}

С помощью #include "winsock.h" подключаем библиотечные функции. Объявляем константу с номером версии, которую мы будем поддерживать - WINSOCK_VERSION.

Функция WSAStartup инициализирует WinSock. Эта функция всегда самая первая при начале работы с WinSock. Вот как она описана:

int WSAStartup (  
	WORD wVersionRequested,    
	LPWSADATA lpWSAData  );
Первый параметр - это версия, которая будет использоваться. Младший байт основная версия, старший байт расширение версии. Если инициализация состоялась, то вернется нулевое значение. Вобщем-то инициализация заключается в сопоставлении номера версии и реально существуюшей DLL в системе.

Второй параметр - это указатель на структуру WSADATA, в которую возвратятся параметры инициализации.

typedef struct WSAData {       
	WORD wVersion;
	WORD wHighVersion;
	char szDescription[WSADESCRIPTION_LEN+1];
	char szSystemStatus[WSASYS_STATUS_LEN+1];
	unsigned short iMaxSockets;
	unsigned short iMaxUdpDg;
	char FAR * lpVendorInfo;
} WSADATA, FAR * LPWSADATA; 
WSACleanup завершает использование данного DLL и прерывает обращение к функциям WinSock. При удачном выполнении вернется нуль.

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 14.01.2000