- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: systembefehl

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    11.09.2006
    Beiträge
    7
    Anzeige

    E-Bike
    Möchte mich an dieser stelle mal für eure hilfe/geduld bedanken

    habe dein tut übersehen sry
    ich denke ma das mit dem socket ist der richtige weg.
    ich muss nur das zeugs zuerst ma lernen.
    ich denke ich versteh was das prgm machen sollte
    wenn ich es jedoch kopiere und bei mir
    einfüge habe ich da ein klitzekleines problem

    nämlich folgendes

    [Linker error] undefined reference to `WSAStartup@8' ld returned 1 exit status (what the hell? )
    C:\socket\Makefile.win [Build Error] [Project1.exe] Error 1

    (ich habe ganz normal im dev-C++ console appl ausgewählt)

    tja was nu?

  2. #12
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ich füge in das Projekt "WS2_32.LIB" ein. (is im c++ libraryverzeichnis)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    11.09.2006
    Beiträge
    7
    sollich dir ma richtig aufn wecker gehen?
    ich finds nich! entweder bin ich echt zu dumm
    oder ich finde kein einziges .lib file im ganzen dev_cpp ordner

    *wahnsinnig werden*

    gr comDave

  4. #14
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Normalerweise dort, wo man den Compiler installiert hat.
    Bei mir z.B. is das

    C:\Program Files\Microsoft Visual Studio\VC98\Lib

    Ahja, nochwas Bei "FIle in Project einfügen" mußt du natürlich den Type "LIB" auswählen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    11.09.2006
    Beiträge
    7
    so jetz habe ich es gefunden gab einfach _lib und lib vorallem sind es bei mir *.a files.

    so nu beginn ich erstma mit dem lernen

    gr comDave

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    werde mich heute vielleicht auch mal damit befassen. wenn ich weiß wie es geht, poste ich hier. ich verwende allerdings bcc32, nicht bloodshed oder sowas. sind aber nur kleine unterschiede beim einbinden der libraries.

    funktioniert der http-get jetzt bei dir, bzw kannst du es fehlerfrei kompilieren? das proggie ist keine console-anwendung, sondern richtig mit nem fenster und so..

    gute tutorial zu winsock finden sich auf http://www.c-worker.ch/

    viel erfolg, und melde dich, wenn etwas nicht klappt.

    gruesse

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    11.09.2006
    Beiträge
    7
    DAS hätt ich nicht gesagt...

    folgendes prob: ich erstelle eine verbindung zu unserem server
    der auch brav antworted dann will ich aber z.B. help senden und wieder
    empfangen. nun empfängt er auch was ich geschickt habe also "help",
    allerdings schreibt er mir nicht was er zum befehl help meint
    z.B "'could not find 'help'".

    überdies hab ich beim rückgabewert '4' was ja logischerweise "help" entspricht.

    muss ich da noch irgendein <cr><lf> senden? bzw. kann ich das mit \0 \n \x13 tun?

  8. #18
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Also, bei ASCII ist <CR><LF> immer gut.
    Was du da im moment siehst, ist wohl das Echo, weil er wohl denkt, du bist ein Terminal
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #19
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    so.. das hat zwar ein bisschen gedauert, aber hier habe ich eine console-anwendung, die emails von einem pop3-server herunterläd, sie anzeigt, und anschliessend vom server löscht.

    das ganze ist noch nicht ganz perfekt (man sollte zum bleistift bei jedem "send(..);" den rückgabewert prüfen), aber man sieht wie man es macht, und es funktioniert auch (getestet unter xp mit web.de, gmx.de, und meinem webspace-server).

    Code:
    #include<stdio.h>
    #include <winsock2.h>
    //#include<string.h> // braucht bcc32 nicht
    
    int main(int argc, char* argv[])
    {
      long rc;
      SOCKET s;
      SOCKADDR_IN addr;
      char buf[1024];
      WSADATA wsa;
      HOSTENT* he;
    
      int number_of_mails,i;
      char *p,*p2;
    
      if(argc!=4)
      {
        printf("syntax: pop3console.exe host user password\n");
        printf("syntax: pop3console.exe pop3.web.de meier@web.de ganzgeheim\n");
        exit(1);
      }
    
      // socket erstellen und connecten
      if(WSAStartup(MAKEWORD(2,0),&wsa)!=0)
      {
        printf("Could not Startup WSA\n");
        exit(1);
      }
    
      s=socket(AF_INET,SOCK_STREAM,0);
      if(s==INVALID_SOCKET)
      {
        WSACleanup();
        printf("Could not create socket\n");
        exit(1);
      }
    
      memset(&addr,0,sizeof(SOCKADDR_IN)); // auf 0 setzen
      addr.sin_family=AF_INET;
      addr.sin_port=htons(110); // port
    
      he=gethostbyname(argv[1]);
      memcpy(&(addr.sin_addr),he->h_addr_list[0],4);
    
      rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
      if(rc==SOCKET_ERROR)
      {
        closesocket(s);
        WSACleanup();
        printf("Could not connect\n");
        exit(1);
      }
    
      printf("connected to %s\n",argv[1]);
    
      // login + check for mail
    
      sprintf(buf,"USER %s\r\n",argv[2]);
      rc=send(s,buf,strlen(buf),0); 
    
      if(rc==SOCKET_ERROR)
      {
        closesocket(s);
        WSACleanup();
        printf("Could not send\n");
        exit(1);
      }
    
      rc=recv(s,buf,1023,0);
      buf[rc]='\0';
      printf("%s",buf);
    
      sprintf(buf,"PASS %s\r\n",argv[3]);
      rc=send(s,buf,strlen(buf),0); 
    
      if(rc==SOCKET_ERROR)
      {
        closesocket(s);
        WSACleanup();
        printf("Could not send\n");
        exit(1);
      }
    
      rc=recv(s,buf,1023,0);
      buf[rc]='\0';
      printf("%s",buf);
    
      rc=recv(s,buf,1023,0);
      buf[rc]='\0';
      printf("%s",buf);
    
      sprintf(buf,"STAT\r\n");
      rc=send(s,buf,strlen(buf),0); 
    
      if(rc==SOCKET_ERROR)
      {
        closesocket(s);
        WSACleanup();
        printf("Could not send\n");
        exit(1);
      }
    
      rc=recv(s,buf,1023,0);
      buf[rc]='\0';
      printf("%s",buf);
    
      // anzahl der mails bestimmen
      // wenn alles geklappt hat, steht hinter dem letzten "+OK" die anzahl der mails im postfach
    
      p=buf;
      while(strstr(p,"+OK")!=NULL)
        p=strstr(p,"+OK")+1;
      p+=3;
      p2=strstr(p," ");
      if(p&&p2)
      {
        *p2=0;
        number_of_mails=atoi(p);
        printf("%d mails auf dem server\n",number_of_mails);
      }
    
      // mails runterladen
      for(i=1;i<=number_of_mails;i++)
      {
        sprintf(buf,"RETR %d\r\n",i);
        send(s,buf,strlen(buf),0); 
    
        do
        {
          rc=recv(s,buf,1024,0);
          buf[rc]='\0';
          printf("%s",buf);
          if(strstr(&buf[rc-5],"\r\n.\r\n")!=NULL)break;
        }
        while(rc!=SOCKET_ERROR);
    
        // geladene email vom server löschen
        sprintf(buf,"DELE %d\r\n",i);
        send(s,buf,strlen(buf),0); 
      }
    
      // session beenden
      sprintf(buf,"QUIT\r\n");
      send(s,buf,strlen(buf),0); 
    
      // aufraeumen
      closesocket(s);
      WSACleanup();
    
      return 0;
    }
    vielleicht hilft es jmd

    man würde natürlich die mails lokal speichern, und dann einen emailbetrachter öffnen, statt sie nur in der konsole darzustellen.

    eine andere idee ist, daraus einen spamfilter zu basteln, der unerwünschte mails löscht, bevor man sein email-proggie öffnet, das dann den rest runterläd.

    Katze: strcmp("QUOTE", "CODE") != 0 ) !!!
    na gut na gut.. ich habe gerade festgestellt, dass es mit IE und mozilla kein problem ist, den code zu markieren und zu copypasten. nur mein opera kann das nicht. taugenichtse.

    gruesse von der katz

  10. #20
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Na super, das sollt' doch helfen !
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests