Daten senden
-
Client
also zu erst wird hier s als Char defeniert dort werden die ergebnisse
von ipconfig gepeichert danach wird s verendetchar s[1000] = "ipconfig > C:\";
// send s
send(sock, s, strlen(s), 0);
strcpy(buf, "Wurde Gesendet: ");// Der server
so der bekommt dann s undchar s[1000];
if (recv (sockfd2,s,1024, 0) == -1) {
perror("recvfrom");printf("Received: %s",s);
closesocket(sockfd2);
}//Generiert eine neue zahl und benutzt die als Datei namen für die .txt
int argc;
char *argv[1000] ;// Eine zahl wird generiert
const int anzahlZeichen = 10;
srand(time(NULL));
string s2;for(int i=0; i < anzahlZeichen; i++) {
s2 += static_cast<char>(rand() % 26 + 97); // nicht ändern
}
cout << "------------" << endl;
cout << s2;// nun sollte er s in die s2 ( der generierte name ) einsetzen damit der inhalt
von s in der neuen txt drin iststring *s;
s+=s2+".txt";
system(s.c_str());// Leider klapt es nicht habe schon daran gedacht es mit ofstream zu machen
leider kann es dir include bei mir nicht finden
und noch eine frage wenn ich s bekommen habe benutze ich printf("Received: %s",s);
um das empfange auszugeben kommen ganz kommisch zeichen ...
-
Hamster schrieb:
char s[1000];
recv (sockfd2,s,1024, 0) ...Wieso 1024, wenn dein Buffer gar nicht so groß ist
Hamster schrieb:
// nun sollte er s in die s2 ( der generierte name ) einsetzen damit der inhalt
von s in der neuen txt drin iststring *s;
s+=s2+".txt";
system(s.c_str());Deine Logik diesbezüglich verstehe ich immer noch nicht

Wieso sollte er etwas in eine Datei schreiben, wenn du versuchst, den Dateinamen auszuführen :pHamster schrieb:
und noch eine frage wenn ich s bekommen habe benutze ich printf("Received: %s",s);
um das empfange auszugeben kommen ganz kommisch zeichen ...Dann stehen diese komischen Zeichen offenbar dort drin

-
ich weiß ich nerve aber ich versuche es weiter
1. ok das mit dem Buffer war dumm
2.Wieso den Dateinamen ausführen er soll den nur erstellen und dort s rein schreiben.
wenn ich stat string *s; einfach string s = "ipconfig > C:\"; mache dann geht es aber dann speichert er dort die
lokale ip .... aber der server soll meine ip kommen die in s drin ist und die in eine txt schreiben jetzt fragst du dich
warum dann immer einen neuen namen generieren naja möchte nicht das die sich überschreiben3. Soll ich vielleicht den ganzen code vom Client und Server posten damit du mich verstechst

-
Hamster schrieb:
Wieso den Dateinamen ausführen er soll den nur erstellen und dort s rein schreiben. wenn ich stat string *s; einfach string s = "ipconfig > C:\"; mache dann geht es aber dann speichert er dort die lokale ip .... aber der server soll meine ip kommen die in s drin ist und die in eine txt schreiben
Das ist ja auch klar, denn mit > wird ja die Ausgabe von ipconfig in eine Datei umgeleitet

Du kannst also natürlich nicht einfach nur einen Dateinamen angeben - wenn du eine Datei anlegen und hineinschreiben willst kannst du z.B. CreateFile/WriteFile/CloseHandle verwenden
-
geht das auch über ofstream und seinen beiden freunden ?
-
sa sagen wir es mal so
hamster = CreateFile("text.txt", GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, NULL, NULL);
WriteFile(hamster,s, FileSize, &BytesWritten, NULL);nun hat er die neue datei text.txt erstellt aber es ist kein s drin gar nichts
habe es auch mitchar *s3;
s3 = "Dummer text";
WriteFile(hamster,s3, FileSize, &BytesWritten, NULL);steht auch nichts drin

-
Merkst Du denn gar nicht das es ohne Grundlagenwissen Deinerseits gar keinen Sinn macht, Dir etwas erklären zu wollen?
Und sag jetzt nicht wieder "Grundlagenwissen hab ich", du beweist bereits mehrmals eindrucksvoll das es bei Dir mit den Grundlagen nicht allzugut aussieht...
-
Wo bitte schön habe ich das gesagt
Grundlagenwissen hab ich
hust hust du meinst bestimmt auf seite 1 das
flenders schrieb
Irgendwie werde ich das Gefühl nicht los, dass dir massiv Grundlagen fehlenich antwortete
und jo mir fehlen in c noch ein paar sachen ^^ ok zimmlich viel
steige gerade von VB um bitte um verständnis
ich weiß das hört sich zimmlich lamer an habe am anfang ganz normal mit c angefangen und so dann kam mir die idee mit dem tool und deswegen versuche es ihrentwie fertig zu machen und weiter grundlagen zu lernen
aber ich gebe mir mühe
:p
-
Was für einen Wert hat denn dein FileSize?
-
meinst du DWORD FileSize;
-
Number of bytes to be written to the file.
Also solltest du da schon was angeben

-
ha habs geschaft habe
int FileSize = 1000;
auf 1000 gemacht und er schreibt s wirklich rein
danke für deine Gedult mit mir finde ich wirklich super von dir ...so nur noch 2 sachen

1. wie könnte ich das mit der generierten zahl verbinden also für den datei namen
2.hmm die s die er bekommen hat schaut so aus
PC
ÌÌÌÌ‘D
ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌaber warum ist
char s[1000] = "ipconfig > C:\";// send s
send(sock, s, strlen(s), 0);
strcpy(buf, "Wurde Gesendet: ");nicht richtig
-
Hamster schrieb:
ha habs geschaft habe
int FileSize = 1000;
auf 1000 gemacht und er schreibt s wirklich rein
Nicht einfach 1000, sondern nur die Größe der tatsächlich zu schreibenden Daten (String-Länge)
Hamster schrieb:
wie könnte ich das mit der generierten zahl verbinden also für den datei namen
Ist dein Problem die Zahl (also dass es kein String ist)?! Dann kannst du entweder atoi oder wsprintf verwenden. Benutzung: siehe Doku!
Deine 2. Frage verstehe ich leider nicht

-
wegen der 2 frage
also der Client
char s[1000] = "ipconfig > C:\"; // speichert die ergebnisse von ipconfig in s rein
die versändt er dann an den server
der bekommt aber nur
PC
ÌÌÌÌ‘D
ÌÌÌÌÌÌÌÌÌÌÌÌÌÌ
-
Ist denn den Inhalt von s beim Client noch korrekt?!
-
flenders schrieb:
Hamster schrieb:
ha habs geschaft habe
int FileSize = 1000;
auf 1000 gemacht und er schreibt s wirklich rein
Nicht einfach 1000, sondern nur die Größe der tatsächlich zu schreibenden Daten (String-Länge)
Hamster schrieb:
wie könnte ich das mit der generierten zahl verbinden also für den datei namen
Ist dein Problem die Zahl (also dass es kein String ist)?! Dann kannst du entweder atoi oder wsprintf verwenden. Benutzung: siehe Doku!
Deine 2. Frage verstehe ich leider nicht

beim client muss du ja auch 16 zeichen empfangen (wenn du da vom server 16 zeichen sendest bei deinem example!!!) bei recv, machst du das wohl??
da darfst du ja nicht das strlen so wie beim server verwenden!!cu
-
so war auf Klassen Fahrt und konnte etwas c lernen ^^ so der code ist im grossen und ganzen fertig verbindung wird aufgebaut s wird gesendet txt datei wird erstellt alles ok aber leider bekommt er immer noch stat die ip als ( s ) kommische zeichen wie DC
ÌÌÌÌ‘D
und ich habe keine Ahnung wo das prob sein könnte
http://paste.phpfi.com/29391
http://paste.phpfi.com/29388help