Если быть точнее все работает , но прога почему-то не закрывается, т.е. весь код выполняется , но при выходе из main-а нечего не происходит. Code: #include <WinSock2.h> #include <Windows.h> int main() { WSADATA ws; WSAStartup(MAKEWORD(2,2),&ws); SOCKET httpsock = socket(AF_INET,SOCK_STREAM,0); HOSTENT* hs; if( (hs=gethostbyname("nix.ru"))==NULL){ closesocket(httpsock); WSACleanup(); return false; } sockaddr_in httpaddr; httpaddr.sin_family=AF_INET; httpaddr.sin_port=htons(80); ((unsigned long *)&httpaddr.sin_addr)[0]=((unsigned long **)hs->h_addr_list)[0][0]; if(connect(httpsock,(sockaddr*)&httpaddr,sizeof(httpaddr))){ closesocket(httpsock); WSACleanup(); return false; } return 0; } Хотя вот так все норм... %) хотя как норм...норм в том смысле , что прога закрывается нормально. Code: #include <WinSock2.h> #include <Windows.h> int main() { WSADATA ws; WSAStartup(MAKEWORD(2,2),&ws); SOCKET httpsock = socket(AF_INET,SOCK_STREAM,0); HOSTENT* hs; /*if( (hs=gethostbyname("nix.ru"))==NULL){ closesocket(httpsock); WSACleanup(); return false; }*/ sockaddr_in httpaddr; httpaddr.sin_family=AF_INET; //httpaddr.sin_port=htons(80); //((unsigned long *)&httpaddr.sin_addr)[0]=((unsigned long **)hs->h_addr_list)[0][0]; if(connect(httpsock,(sockaddr*)&httpaddr,sizeof(httpaddr))){ closesocket(httpsock); WSACleanup(); return false; } return 0; } При пошаговом выполнение на return 0 Честно говоря не очень понимаю что это значит, и что при этом нужно делать.
ставь ExitProcess(0); в конце и будет тебе счастье. К тому же я смотрю вы садист! не проще ли httpaddr.sin_addr.S_un.S_addr = *(ULONG*)(p->h_addr); намного понятнее чем твой код