ip-server-frage



  • socket++ schrieb:

    den hab ich mit dev gemacht...

    Ja das habe ich auch, aber bei mir geht es nicht. Kann es auch gar nicht, z.B. ist i und x undefiniert.

    mfg.



  • #include <windows.h>
    #include <winsock2.h>
    #include <stdio.h>
    #include <iostream>
    using namespace std;
    
    int startWinsock(void);
    
    int main()
    {  
      long dumpHost(char* hostname);
      string hostname;
      hostname = "x";
      long rc;
      SOCKET s;
      SOCKADDR_IN addr;
      char buf[256];
    
      rc=startWinsock();
      if(rc!=0)
      {
        printf("Fehler: startWinsock, fehler code: %d\n",rc);
        return 1;
      }
    
      s=socket(AF_INET,SOCK_STREAM,0);
      if(s==INVALID_SOCKET)
      {
        printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
        return 1;
      }
    
      char* a = "x";
    
      IN_ADDR addra;
      HOSTENT* he;
    
      he=gethostbyname(a);
    
       // ip adress list
       int i;
      i=0;
    
      while(he->h_addr_list[i])  {
      addra.s_addr=*((long*)he->h_addr_list[i++]);
      printf("Host Ip Address: %s\n",inet_ntoa(addra));
      break;
      }
      string b = inet_ntoa(addra);
    
      memset(&addr,0,sizeof(SOCKADDR_IN));
      addr.sin_family=AF_INET;
      addr.sin_port=htons(12345); 
      addr.sin_addr.s_addr=inet_addr(b.c_str()); //das geht nicht
    /*
      addr.sin_addr.s_addr=inet_addr("127.0.0.1"); //das funktioniert
    */
      rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
      if(rc==SOCKET_ERROR)
      {
        printf("Fehler: connect gescheitert, fehler code: %d\n",WSAGetLastError());
    
        return 1;
      }
      else
      {
        printf("Verbunden mit 127.0.0.1...\n");
      }
    
      while(rc!=SOCKET_ERROR)
      {
        printf("\nZeichenfolge eingeben [max 256]\n\n ");
        printf("say:");
        gets(buf);
        send(s,buf,strlen(buf),0);
        rc=recv(s,buf,256,0);
        if(rc==0)
        {
          printf("Server hat die Verbindung getrennt..\n");
          Sleep(5000);
          cout << "\r";
          break;
        }
        if(rc==SOCKET_ERROR)
        {
          printf("Fehler: recv, fehler code: %d\n",WSAGetLastError());
          Sleep(5000);
          cout << "\r";
          break;
        }
        buf[rc]='\0';
        char antwort[300];
        printf("\nServer antwortet: %s\n",antwort);
      }
      closesocket(s);
      WSACleanup();
      return 0;
    }
    
    int startWinsock(void)
    {
      WSADATA wsa;
      return WSAStartup(MAKEWORD(2,0),&wsa);
    }
    

    so funktioniert er bei mir...

    hab bisschen was geändert



  • Ich gebe dir mal einen gut gemeinten Rat: Hör auf mit Sockets, lern erstmal C!

    Wie ist deine Seite bei no-ip.info?? "x"??? Denn das übergibst du an gethostbyname!

    mfg.



  • O man das ist mir bewusst...aber ich öffne doch nicht für dich einen port ...



  • socket++ schrieb:

    O man das ist mir bewusst...aber ich öffne doch nicht für dich einen port ...

    Du verstehst nicht worum es bei no-ip.info geht! Hör auf mit Netzwerkprogrammierung!!

    mfg.



  • Warum gibst du an der Stelle nicht irgendeinen belibigen anderen DNS-Namen an?

    z.B www.test.de, www.google.de, www.web.de. Eben irgendwas was funktioniert.

    Außerdem was meinst du mit Port öffnen, du musst doch für das DNS-Lookup keinen Port öffnen???



  • ich weiß was es ist.. es ist ein name der auf meine derzeitige ip verweißt...

    es ist doch völlig belanglos, ob du den namen hast oder nicht es geht ums prinzip..

    und so dumm bin ich auch nicht, sodass ich x an gethostbyname gebe du kannst selber irgendwas da einfügen daher ist x auch eine undefinierte varibale, aber was heißt undefiniert sie ist defniert aber ohne jeden sinn



  • socket++ schrieb:

    ich weiß was es ist.. es ist ein name der auf meine derzeitige ip verweißt...

    es ist doch völlig belanglos, ob du den namen hast oder nicht es geht ums prinzip..

    und so dumm bin ich auch nicht, sodass ich x an gethostbyname gebe du kannst selber irgendwas da einfügen daher ist x auch eine undefinierte varibale, aber was heißt undefiniert sie ist defniert aber ohne jeden sinn

    Wir wollen dein problem lösen und nicht das Problem beim auflösen eines Codes zum nslookup nach google.de oder so. Also müssen wir auch wissen was du machst. Und wenn du ein nslookup nach "x" machst, kann das nicht gehen, verstehst du?

    mfg.



  • es liegt nicht am an der zeiladresse: bei www.google.de geht es auch nicht



  • socket++ schrieb:

    es liegt nicht am an der zeiladresse: bei www.google.de geht es auch nicht

    Bei mir schon.

    mfg.



  • ja, er findet die ip heraus...verbindet aber nicht dazu.. bei mir bleibt er nach der ausgabe von

    printf("Host Ip Address: %s\n",inet_ntoa(addra));

    stehen und macht nichts mehr weiter...



  • ja, er findet die ip heraus...verbindet aber nicht dazu.. bei mir bleibt er nach der ausgabe von

    printf("Host Ip Address: %s\n",inet_ntoa(addra));

    stehen und macht nichts mehr weiter...



  • socket++ schrieb:

    ja, er findet die ip heraus...verbindet aber nicht dazu.. bei mir bleibt er nach der ausgabe von

    printf("Host Ip Address: %s\n",inet_ntoa(addra));

    stehen und macht nichts mehr weiter...

    - Hast du denn auch einen Server auf?
    - Bist du sicher dass es mit "127.0.0.1" klappt anstatt b.c_str()??

    mfg.



  • absolut

    aber auch wenn ich keinen drauf hätte müsste er mir einen fehler anzeigen...



  • also ich glaube er kann nur lokal bei mir zugreifen...

    also 127.0.0.1 akzeptiert er, aber einer andere nicht...



  • Firewall an?



  • socket++ schrieb:

    aber auch wenn ich keinen drauf hätte müsste er mir einen fehler anzeigen...

    Bei mir tut er dies auch.

    mfg.



  • bei mir auch?



  • bei mir nicht.... nochniemahct mal das



  • oh gott joomoo wie hälst du das nur aus 😃

    socket++, dass will ich sehen wie du einen Chat schreibst


Anmelden zum Antworten