Sie sind nicht angemeldet.

1

Sonntag, 27. Dezember 2009, 17:07

[C++]Per WSA auf Google.de zugreifen

hallo,
ich würde gerne per WSA auf google.de zugreifen, allerdings funktioniert as ganze Empfangen noch nicht richtig...

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <windows.h>
#include <winsock2.h>
#include <string>
#include <fstream>

using namespace std;

int WSAStart()
{
    WSADATA wsa;
    return WSAStartup(MAKEWORD(2,0), &wsa);
}

int cstringlen(char array[])
{
    int counter=0;
    while (array[counter]!=0)
    {
          counter++;
    }
    return counter;
}

void gebaus(char array[])
{
     for (int i=0;array[i]!=0;i++)
     {
         cout << array[i];
     }
     cout << endl;
}

string getData()
{
     int MAX_LENGTH = 8000;
     char crlf = 13;
     char buffer[MAX_LENGTH];
     string data;
     data = "GET / HTTP/1.0\n"
     "Host: localhost\n"
     "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16 (.NET CLR 3.5.30729)\n"
     "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n"
     "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\n"
     "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n"
     "Keep-Alive: 300\n"
     "Connection: keep-alive\n\n";
     return data;
}

int login()
{
    SOCKET s;
    if (WSAStart()!=0) 
    {
                     cout << "WSA konnte nicht gestartet werden!" << endl;
                     system("pause");
                     return -1;
    }
    s = socket(AF_INET, SOCK_STREAM, 0);
    if (s==INVALID_SOCKET)
    {
           cout << "Socket konnte nicht ertellt werden!" << endl;
           system("pause");
           return -1;
    }
    
    sockaddr_in addr;
    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("74.125.39.99");
    long rc = connect(s, (SOCKADDR*)&addr, sizeof(sockaddr));
    if (rc==SOCKET_ERROR)
    {
                         cout << "Verbindung konnte nicht hergestllet werden!" << endl;
                         system("pause");
                         return -1;
    }
    else
    {
        cout << "Verbindung wurde erfolgreich hergestllt!" << endl;
    }
    string data = getData();
    char buffer[5000];
    strcpy(buffer, data.c_str());
    rc = send(s, buffer, sizeof(buffer), 0); //senden
    if (rc==SOCKET_ERROR)
    {
                         cout << "Fehler beim Senden der Daten!" << endl;
                         system("pause");
                         return -1;
    }
    else
    {
        cout << "Daten wurden erfolgreich gesendet!" << endl;
    }
    char bufrecv[5000];
    rc = 1;
    while (rc!=0)
    {
          rc = recv(s, bufrecv, 1, 0);
    }
    fstream f;
    f.open("hello.htm");
    for (int i=0;bufrecv[i]!=0;i++)
    {
        f << bufrecv[i];
    }
    f << endl;
    f.close();
    
}

void stradd(char array1[], char array2[])
{
     int len1 = cstringlen(array1);
     int len2 = cstringlen(array2);
     char ergebnis[len1+len2+1];
     strcpy(ergebnis, array1);
     for (int i=0;array2[i]!=0;i++)
     {
         ergebnis[len1+i] = array2[i];
     }
     gebaus(ergebnis);
}


int main(int argc, char *argv[])
{   
    login();
    system("pause");
}

kompilliert isses mit DevC++
mfg
@night@
Signatur "Um im Internet zu surfen brauch man eine IP. Einen IQ leider nicht..."
-Woki

Ich gebe niemanden eine positive Bewertung, der darum bettelt! :pinch:

GUI-Tutorial: Klick!

Helfen Sie, die Vielfalt des Amazonas zu bewahren

2

Sonntag, 27. Dezember 2009, 17:18

Da solltest du auf jeden fall Visual studio 2008 ( express) benutzen<- ist auch kostenlos^^. Die IDE Dev-C++ wird schon seit langer zeit nicht mehr weiterentwickelt
und ist veraltet, da treten umso mehr fehler auf und befehle funktionieren nicht richtig. Du brauchst auf jeden fall visual studio!
Signatur

C/C++-Quelltext

1
2
3
4
5
6
7
c/c++/cli
c#
vb
au3 - mist
html/css/php

++ profi x) ++

3

Sonntag, 27. Dezember 2009, 20:26

Zitat

Da solltest du auf jeden fall Visual studio 2008 ( express) benutzen

ich sollte also auf jeden Fall eine IDE von Microssoft benutzen??? Nein, danke! Ich hab kein Bock auf Visual C++ von Micrsoft umzusteigen...
ich bleib lieber bei etwas, bei dem ich nich extra noch das .net framework installieren muss!
€dit: Problem hat sich gelöst^^
mfg
@night@
Signatur "Um im Internet zu surfen brauch man eine IP. Einen IQ leider nicht..."
-Woki

Ich gebe niemanden eine positive Bewertung, der darum bettelt! :pinch:

GUI-Tutorial: Klick!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »@night@« (27. Dezember 2009, 21:04)


Ähnliche Themen

Verwendete Tags

C++, WSA