Создавайте проект, как в прошлый раз только с именем WinSock2.
Ну, во-первых, я вынес инициализацию и закрытие WinSock в отдельные процедуры. Общий код программы теперь выглядит так.
void StartWinSock(); void StopWinSock(); void WaitSocket(); void main() { StartWinSock(); WaitSocket(); StopWinSock(); }
WaitSocket создан на перспективу, то есть я буду создавать ожидающий сокет. А пока в нем только функция получения имени хоста. Вот как она выглядит
void WaitSocket() { char chInfo[64]; if (gethostname(chInfo,sizeof(chInfo))) { printf("Not local host\n"); return; } else { printf(chInfo); printf(" GetHostName OK !!!!!\n"); } }
Главное в этом коде функция gethostname:
int gethostname ( char FAR * name, int namelen );
В эту функцию передается буфер и его длина для возврата имени. При отсутствии ошибок эта функция вернет 0.
Я опробовал этот код под Windows 98, вот что я получил в ответ.
Microsoft(R) Windows 98 (C)Copyright Microsoft Corp 1981-1998. C:\WINDOWS>d: D:\PROJECT\ClientServer\Winsock2\Debug>winsock2 Winsock initial OK !!!! Jana GetHostName OK !!!!! Cleapir Good !!!!!
Jana - это у меня настроенный удаленный доступ к сети (Internet :-))