012
22.12.2006, 12:03 Uhr
weed
|
jo ok, dann google ich später mal nach cstdio.h...
Hab jetzt im übrigen ein neues Problem beim Erweitern meines überaus nützlichen (LOL) Programms.
C++: |
#include <iostream> #include <string> #include <windows.h> #include <winsock2.h> using namespace std;
int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); }
int main (int argc, char *argv[]) { // ..... Programmname und Copyright zuerst zeigen LOL cout << "--- Dateibrowser fuer Arme (c) by weed ---" << endl << endl; // ..... Verzeichnis-Pfad, von dem Dateien aufgelistet oder angelegt werden sollen. [Start-Pfad] string path = "C:/";
string eingabe; int fnr; while (true) { cout << "Dir> " << path << endl; getline (cin, eingabe); if (eingabe == "exit") { exit (0); } else if (eingabe == "files") { // ..... Trennstrich oben. cout << endl << "--- --- --- ---" << endl; // ..... Dateien im Verzeichnis auflisten. HANDLE fHandle; WIN32_FIND_DATA wfd; fHandle = FindFirstFile((path+"*").c_str(), &wfd); // [.] interessiert Keinen. FindNextFile (fHandle, &wfd); // [..] auch. fnr = 0; while (FindNextFile(fHandle, &wfd)) { cout << "["<<fnr<<"] " << wfd.cFileName << " - " << wfd.nFileSizeHigh << endl; fnr++; } FindClose (fHandle);
// ..... Trennstrich unten. cout << "--- --- --- ---" << endl << endl; } else if (eingabe == "iReceive") { cout << "Zu welchem Webserver verbinden?" << endl; char host[100]; cin >> host; // ..... Trennstrich oben. cout << endl << "--- --- --- ---" << endl; long rc = startWinsock(); if (rc != 0) { printf ("Fehler: startWinsock, fehler code: %d\n", rc); } else { printf ("Winsock gestartet!\n"); SOCKET s; SOCKADDR_IN addr; char buf[1000];
s = socket(AF_INET, SOCK_STREAM, 0); if (s == INVALID_SOCKET) { printf ("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n", WSAGetLastError()); } 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(80); addr.sin_addr.s_addr=inet_addr(host);
rc = connect(s, (SOCKADDR*)&addr, sizeof(SOCKADDR)); if(rc == SOCKET_ERROR) { printf ("Fehler: connect gescheitert, fehler code: %d", WSAGetLastError()); } else { printf ("Verbunden mit %s..\n", host); char senden[100];
sprintf (senden, "GET /test.php?test=test HTTP/1.0\r\nHost: %s\r\n\r\n", host); rc = send(s, senden, 100, 0); rc = recv(s, buf, 1000, 0); cout << "--- --- --- ---" << endl; printf (buf); } } } // ..... Trennstrich unten. cout << endl << "--- --- --- ---" << endl << endl; } else { cout << endl << "???: " << eingabe << endl; } }
return 0; }
|
Undzwar habe ich in mein Programm die Eingabe iReceive hinzugefügt. Beim entern von iReceive wird man nach einer hostIp gefragt. Zu der verbindet sich der socket und gibt den Receive aus.
Jetzt zu den Problemen: 1. Bis jetzt konnte ich mich so nur zu funpic verbinden. 2. war der Receive leider nur ein "Not found" ist, wobei test.php existiert! 3. Wenn ich versuche, mich mit google zu verbinden: problembericht senden|nicht senden 4. Ich weiß nicht, wie man die sockets wieder sauber schliesst und zerstört.
Wenn mir da jemand weiterhilft, wäre toll... -- lol Signatur lol Dieser Post wurde am 22.12.2006 um 12:23 Uhr von weed editiert. |