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