|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I have the following visual c++ code. It's taken from Beej's guide to
network programming, and modified a little foruse with winsock. But gethostbyname just doesn't work, not for localhost nor any other ala http://google.com CODE: #include "stdafx.h" #include <winsock.h> #include <iostream> #define BACKLOG 1 #define MYPORT 18999 #define PORT 18999 // the port client will be connecting to #define MAXDATASIZE 100 // max number of bytes we can get at once class WSAInitializer // Winsock Initializer { public: WSAInitializer() { if (WSAStartup(0x101,&m_wsadata)) { exit(-1); } } ~WSAInitializer() { WSACleanup(); } private: WSADATA m_wsadata; }; int _tmain(int argc, _TCHAR* argv[]) { WSAInitializer* WSAINIT=new WSAInitializer; SOCKET sockfd, numbytes; char buf[MAXDATASIZE]; struct hostent *he; struct sockaddr_in their_addr; // connector's address information if (argc != 2) { fprintf(stderr,"usage: client hostname\n"); exit(1); } if ((he=gethostbyname((char*)argv[1])) == NULL) { // get the host info std::cout<<WSAGetLastError(); perror("gethostbyname"); exit(1); } if ((sockfd = socket(PF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } their_addr.sin_family = AF_INET; // host byte order their_addr.sin_port = htons(PORT); // short, network byte order their_addr.sin_addr = *((struct in_addr *)he->h_addr); memset(their_addr.sin_zero, '\0', sizeof their_addr.sin_zero); if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof their_addr) == -1) { perror("connect"); exit(1); } if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) { perror("recv"); exit(1); } buf[numbytes] = '\0'; printf("Received: %s",buf); closesocket(sockfd); return 0; } Do you see any problems with the above code? I'm nearly 100% sure the error isn't caused by my local machine. When running it like client.exe localhost it gives the Winsock error code 11001 aka host not found. Any suggestions? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
jonashn wrote:
> I have the following visual c++ code. It's taken from Beej's guide to > network programming, and modified a little foruse with winsock. But > gethostbyname just doesn't work, not for localhost nor any other ala > http://google.com > CODE: > > #include "stdafx.h" > #include <winsock.h> > #include <iostream> > [..] > > Do you see any problems with the above code? You mean, beyond the fact that it's non-standard C++? > I'm nearly 100% sure the > error isn't caused by my local machine. Then it's caused by something else. > When running it like client.exe localhost it gives the Winsock error > code 11001 aka host not found. > > Any suggestions? Post to the newsgroup where Winsock is on topic, like the Windows programming newsgroup, there are several. The FAQ contains the list of the proposed ones. V -- Please remove capital 'A's when replying by e-mail I do not respond to top-posted replies, please don't ask |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On 7 Dec., 15:37, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote:
> jonashn wrote: > > I have the following visual c++ code. It's taken from Beej's guide to > > network programming, and modified a little foruse with winsock. But > > gethostbyname just doesn't work, not for localhost nor any other ala > >http://google.com > > CODE: > > > #include "stdafx.h" > > #include <winsock.h> > > #include <iostream> > > [..] > > > Do you see any problems with the above code? > > You mean, beyond the fact that it's non-standard C++? Yes, and actually a started using standard C++ and WxWidgets, and would at any time prefer gcc and standard C. I just coudn't get WxW to work, and since this is part of a school project which has to be finished fast, i had to switch and ended up by choosing VCE. > > I'm nearly 100% sure the > > error isn't caused by my local machine. > > Then it's caused by something else. > > > When running it like client.exe localhost it gives the Winsock error > > code 11001 aka host not found. > > > Any suggestions? > > Post to the newsgroup where Winsock is on topic, like the Windows > programming newsgroup, there are several. The FAQ contains the list > of the proposed ones. I'll do so. > > V > -- |
|
![]() |
| Outils de la discussion | |
|
|