ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Инициализация WinSock2
  #1  
Старый 26.05.2009, 03:28
Аватар для Flenov
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию Инициализация 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;
 
Ответить с цитированием

  #2  
Старый 26.05.2009, 04:00
Аватар для .ATK
.ATK
Участник форума
Регистрация: 20.02.2009
Сообщений: 224
Провел на форуме:
5075819

Репутация: 274
По умолчанию

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

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

  #3  
Старый 26.05.2009, 04:13
Аватар для Flenov
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию

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

  #4  
Старый 26.05.2009, 05:20
Аватар для RumShun
RumShun
Постоянный
Регистрация: 27.10.2008
Сообщений: 380
Провел на форуме:
1249808

Репутация: 149
Отправить сообщение для RumShun с помощью ICQ
По умолчанию

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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ