Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Инициализация WinSock2 (https://forum.antichat.xyz/showthread.php?t=122334)

Flenov 26.05.2009 03:28

Инициализация WinSock2
 
Господа, заранее извиняюсь за наитупейший вопрос, но для меня он очень важен.

Я пишу программу на Delphi (по сути TCP клиент, но это не имеет большого значения) с использованием WinSock2.

И мне нужно грамотно инициализировать WinSock2.
Как правильно это сделать и есть ли существенная разница между этими двумя кодами?

Код:

procedure TForm1.FormCreate(Sender: TObject);
var
  wData: TWSAData;
begin
  if (WSAStartup(MakeWord(2, 0), wData)<>0) then Raise Exception.Create('Ошибка инициализвции WinSock2');
end;


Код:

procedure TForm1.FormCreate(Sender: TObject);
var
  wData: TWSAData;
begin
  if (WSAStartup($202, wData)<>0) then Raise Exception.Create('Ошибка инициализвции WinSock2');
end;


.ATK 26.05.2009 04:00

на сколько я помню, в первоем случае инициализации с помощью MakeWord более правильная, так как вроде инициализирует последнию версию на данной ОС.. как то так ;)

Цитата:

Первый параметр (wVersionRequested) — это запрашиваемая версия библиотеки. Младший байт указываемого числа определяет основной номер версии, а старший байт — дополнительный номер. Чтобы легче было работать с этим параметром, я советую использовать макрос MAKEWORD(i, j), где i — это старший байт, a j — младший.
(с)http://hardteam.ucoz.ru/publ/4-1-0-27

Flenov 26.05.2009 04:13

Цитата:

Сообщение от .ATK
на сколько я помню, в первоем случае инициализации с помощью MakeWord более правильная, так как вроде инициализирует последнию версию на данной ОС.. как то так ;)

Про младший и старший байты я знаю (про версию и подверсию тоже).
Просто хочется правильно их инициализировать.
У меня WinSock 2, но по сути это WinSock 2.2.
И как было бы правильней написать MakeWord(2, 0) или MakeWord(2, 2).
Впринципе MakeWord(2, 2) эквивалентно $202, но вопрос остаётся открытым, тк я заинтересован в наиболее корректной работе сокетов.

RumShun 26.05.2009 05:20

Более поздние версии отличаются наличием новых функций и механизмов расширений.
Вопрос будеш ли ты их использовать, пиши MakeWord(2, 2) и не парься.


Время: 23:21