C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
WSAStartup, what is it
joynter
Отправлено: 04.10.2004, 17:29


Станционный диспетчер

Группа: Участник
Сообщений: 137



вот код для определения IP

CODE

#include <winsock.h>
#include <stdio.h>
........

WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 0);
int error;
error = WSAStartup(wVersionRequested, &wsaData);
if(error == 0)
 {
 char HostName[1024];
 struct hostent *adr;
 adr = gethostbyname(HostName);
 if(adr)
   {
   char *LocalIp = new char[15];
   sprintf(LocalIp,"%d.%d.%d.%d",(unsigned char)adr->h_addr_list[0][0],(unsigned char)adr->h_addr_list[0][1],
             (unsigned char)adr->h_addr_list[0][2],(unsigned char)adr->h_addr_list[0][3]);
   Label1->Caption = LocalIp;
   }
 }


объясните пожалуйста такую вещь:
изначально HostName = NULL, но после того как выполнилась команда
CODE
error = WSAStartup(wVersionRequested, &wsaData);

HostName = ......any_value.
откуда такая беда — не понимаю?
AVC
Отправлено: 05.10.2004, 09:28


Ветеран

Группа: Модератор
Сообщений: 1583



Не понял вопроса.
HostName определен ПОСЛЕ вызова WSAStartup
Как он может быть чему-то равен перед вызовом?
PS. WSACleanup не забыт?
joynter
Отправлено: 05.10.2004, 10:21


Станционный диспетчер

Группа: Участник
Сообщений: 137



вопрос даже проще, чем был вчера поставлен:
почему после выполнения
CODE
WSAStartup(wVersionRequested, &wsaData);

любая char-переменная получает какое-то значение?

зы т.е. выполнять код нужно в пошаговом режиме
зызы вышеприведенный код писал не я. я только пытаюсь разобраться как он работает

Отредактировано joynter — 05/10/2004, 11:39

Вернуться в Вопросы программирования в C++Builder