Möchte einen String auf einen Server schicken (Winsock)



  • Nutze dafür diesen Code:

    #include <windows.h>
    #include <winsock2.h>
    #include <conio.h>
    #include <stdio.h>
    
    //Prototypen
    
    int startWinsock();
    
    int main()
    {
    
      int rc;
      char buf[256];
      SOCKET s;
      SOCKADDR_IN addr;
    
      rc=startWinsock();
    
      if(rc!=0)
      {
        printf("Fehler: startWinsock, fehler code: %d\n",rc);
        return 1;
      }
      else
      {
        printf("Winsock gestartet!\n");
      }
        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;
    }
    else
    {
      printf("Socket erstellt!\n");
    }
    
        memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten
        addr.sin_family=AF_INET;
        addr.sin_port=htons(21); // ftp port ist 21
        addr.sin_addr.s_addr=inet_addr("33.33.33.33"); // zielrechner ist mein freehoster
    
    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 33.33.33.33..\n");
    }
    
    strcpy(buf,"Hallo wie gehts?");
    rc=send(s,buf,9,0);
    
      return 0;
    }
    
    int startWinsock()
    
    {
      WSADATA wsa;
    
      return WSAStartup(MAKEWORD(2,2),&wsa);
    
    }
    

    Nun muss man sich natürlich mit den Nutzerdaten vorher im Server anmelden. Wie baue ich da sowas ein? Der String sollte als .txt Datei ankommen. Oder hab ich evtl. den völlig falschen Ansatz gewählt?? Tschuldige' wegen dem miserablen Stil 🤡

    Bedanke mich für jedwede Hilfe. 😉



  • Du kannst nicht einfach einen String an einen FTP Server senden und der schreibt ihn dann in ein text File. Dazu musst Du dich als Client an das FTP Protokoll halten. Lies dazu die Beschreibung des FTP Protokols.

    http://www.faqs.org/rfcs/rfc959.html

    Nun muss man sich natürlich mit den Nutzerdaten vorher im Server anmelden.

    Stimmt. Aber nicht nur das. Der Datei Upload Befehl ist wie gesagt mehr als nur senden des Contents.

    Ausserdem scheint mit länge des Buffers bei send(..) falsch.
    (FTP Protokoll hin oder her.)

    Ich würde mir überlegen ob Du nicht schon eine fertige API (Klasse oder z.B. die WINAPI) benutzen möchtest.

    Simon


Anmelden zum Antworten