Winsock Falsche Adresse
-
Was mach ich falsch wenn ich immer den Fehlercode 10047 zurück bekomm?
Oder besser gesagt wie behäb ich den Fehler?
http://www.supermailer.de/winsock_errorcodes.htm#include <winsock.h>
#include <winsock2.h>
#include <iostream>
using namespace std;WORD wVersionRequested=MAKEWORD(1, 1);
WSADATA wsaData;
int a;
int port=90;
unsigned long addr;
const char ipadr[]="127.0.0.1";int main() {
cout << "Titel: TestClient" << endl << "Developer: " << endl;
WSAStartup(wVersionRequested, &wsaData);
SOCKET sock;
sock=socket(AF_INET, SOCK_STREAM, 0);cout << "Intialisiere Socket ..." << endl;
if(sock<0) {
cout << "Fehler beim erzeugen des Sockets!" << endl;
cin.get();
}
else
{cout << "Socket erfolgreich erstellt!" << endl;
struct sockaddr_in {
short sin_family;
unsigned short int sin_port;
struct in_addr sin_addr;
unsigned char pad[8];
};struct sockaddr_in neu;
neu.sin_family=AF_INET;
neu.sin_port=htons(port);memset(&neu,0,sizeof(neu));
addr=inet_addr(&ipadr[1]);
memcpy( (char *)&neu.sin_addr, &addr, sizeof(addr));cout << "Verbindungsaufbau..." << endl << "Port: " << port << endl << "Adresse: " << ipadr << endl;
if(connect(sock,(struct sockaddr*)&neu, sizeof(neu))<0)
{
cout << "Fehler beim Verbindungsaufbau" << endl << "Fehlercode :" <<WSAGetLastError();
}
else
{if(a<10000) {
char daten='G';
send(sock,&daten,1000,0);
a++;
}}
cin.get();
}}
-
versuchs mal mit:
struct hostent* hostinfo; hostinfo = gethostbyname("hostname"); if (hostinfo == NULL) { close(local_socket); } else neu.sin_addr = *(struct in_addr*) hostinfo->h_addr;oder alternativ um an alle adressen zu binden:
neu.sin_addr.s_addr = htonl(INADDR_ANY);(macht natürlich nur auf serverseite sinn :P)
-
Danke
jetzt funktioniert es endlich.
Danke
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.