Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Die Artikel ::  Sockets und das HTTP-Protokoll  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
DaDiceman
Mitglied

Benutzerprofil
Anmeldungsdatum: 05.01.2010
Beiträge: 8
Beitrag DaDiceman Mitglied 10:46:47 05.01.2010   Titel:              Zitieren

Danke für den Tipp!


Zuletzt bearbeitet von DaDiceman am 10:47:12 05.01.2010, insgesamt 1-mal bearbeitet
tobif
Unregistrierter




Beitrag tobif Unregistrierter 23:37:58 16.02.2010   Titel:              Zitieren

Hallo,

ich connecte zu einer Website und kann mit SendAll eine Request machen und mit GetLine das Ergebniss auslesen. Die erste Request klappt. Wenn ich nochmals das gleiche Sende mit SendAll erhalte ich eine Leere Antwort. Beim dritten Versuch erhalte ich schlieslich beim Senden den Error Code 10053.

Muss ich für jeden neuen Http-Request nochmals den socket closen und connecten?

C/C++ Code:
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
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
string request = "HEAD /index.php HTTP/1.1\r\nHost: www.google.de \r\n\r\n";
std::stringstream line;
SendAll(socket, request.c_str(), request.size());
GetLine(socket, line);
std::cout << line.str() << std::endl //klappt

SendAll(socket, request.c_str(), request.size());
GetLine(socket, line);
std::cout << line.str() << std::endl; //leere Antowrt

SendAll(socket, request.c_str(), request.size()); //fehler beim senden
GetLine(socket, line);
std::cout << line.str() << std::endl;



void SendAll(int socket, const char* const buf, const int size)
{
    int bytesSent = 0; // Anzahl Bytes die wir bereits vom Buffer gesendet haben
    do
    {
        int result = send(socket, buf + bytesSent, size - bytesSent, 0);
        if(result < 0) // Wenn send einen Wert < 0 zurück gibt deutet dies auf einen Fehler hin.
        {
            std::cout << WSAGetLastError();
        }
        bytesSent += result;
    } while(bytesSent < size);
}

// Liest eine Zeile des Sockets in einen stringstream
void GetLine(int socket, std::stringstream& line)
{
    for(char c; recv(socket, &c, sizeof(c), 0) > 0; line << c)
    {
       
    }
   // throw CreateSocketError();
return;
}
C/C++ Code:
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
string request = "HEAD /index.php HTTP/1.1\r\nHost: www.google.de \r\n\r\n";
std::stringstream line;
SendAll(socket, request.c_str(), request.size());
GetLine(socket, line);
std::cout << line.str() << std::endl //klappt

SendAll(socket, request.c_str(), request.size());
GetLine(socket, line);
std::cout << line.str() << std::endl; //leere Antowrt

SendAll(socket, request.c_str(), request.size()); //fehler beim senden
GetLine(socket, line);
std::cout << line.str() << std::endl;



void SendAll(int socket, const char* const buf, const int size)
{
int bytesSent = 0; // Anzahl Bytes die wir bereits vom Buffer gesendet haben
do
{
int result = send(socket, buf + bytesSent, size - bytesSent, 0);
if(result < 0) // Wenn send einen Wert < 0 zurück gibt deutet dies auf einen Fehler hin.
{
std::cout << WSAGetLastError();
}
bytesSent += result;
} while(bytesSent < size);
}

// Liest eine Zeile des Sockets in einen stringstream
void GetLine(int socket, std::stringstream& line)
{
for(char c; recv(socket, &c, sizeof(c), 0) > 0; line << c)
{

}
// throw CreateSocketError();
return;
}
C/C++ Code:
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
string request = "HEAD /index.php HTTP/1.1\r\nHost: www.google.de \r\n\r\n";
std::stringstream line;
SendAll(socket, request.c_str(), request.size());
GetLine(socket, line);
std::cout << line.str() << std::endl //klappt

SendAll(socket, request.c_str(), request.size());
GetLine(socket, line);
std::cout << line.str() << std::endl; //leere Antowrt

SendAll(socket, request.c_str(), request.size()); //fehler beim senden
GetLine(socket, line);
std::cout << line.str() << std::endl;



void SendAll(int socket, const char* const buf, const int size)
{
    int bytesSent = 0; // Anzahl Bytes die wir bereits vom Buffer gesendet haben
    do
    {
        int result = send(socket, buf + bytesSent, size - bytesSent, 0);
        if(result < 0) // Wenn send einen Wert < 0 zurück gibt deutet dies auf einen Fehler hin.
        {
            std::cout << WSAGetLastError();
        }
        bytesSent += result;
    } while(bytesSent < size);
}

// Liest eine Zeile des Sockets in einen stringstream
void GetLine(int socket, std::stringstream& line)
{
    for(char c; recv(socket, &c, sizeof(c), 0) > 0; line << c)
    {
       
    }
   // throw CreateSocketError();
return;
}


Hier der komplette Code, der eigentlich dreimal die Zeit messen soll.
C/C++ Code:
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
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
// socket.cpp: Hauptprojektdatei.
#include
"stdafx.h"
#include
<iostream>
#include
<time.h>
#include
<fstream>
#include
<stdexcept> // runtime_error
#include
<sstream>
#include
<winsock2.h>





void SendAll(int socket, const char* const buf, const int size)
{
    int bytesSent = 0; // Anzahl Bytes die wir bereits vom Buffer gesendet haben
    do
    {
        int result = send(socket, buf + bytesSent, size - bytesSent, 0);
        if(result < 0) // Wenn send einen Wert < 0 zurück gibt deutet dies auf einen Fehler hin.
        {
            std::cout << WSAGetLastError();
        }
        bytesSent += result;
    } while(bytesSent < size);
}

// Liest eine Zeile des Sockets in einen stringstream
void GetLine(int socket, std::stringstream& line)
{
    for(char c; recv(socket, &c, sizeof(c), 0) > 0; line << c)
    {
        if (c=='\n'){
            return;}
    }
   // throw CreateSocketError();
return;
}

float StopTime(int socket, std::string request){
    float sec;
    clock_t tvor;
    tvor=clock();
    SendAll(socket, request.c_str(), request.size());
    std::stringstream line;
        GetLine(socket, line);
        std::cout << line.str() << std::endl;


    sec=(static_cast<float>(clock()-tvor))/CLOCKS_PER_SEC;
    return sec;
}

int main()
{
    using namespace std;

#ifndef
linux
    WSADATA w;
    if(int result = WSAStartup(MAKEWORD(2,2), &w) != 0)
    {
        cout << "Winsock 2 konnte nicht gestartet werden! Error #" << result << endl;
        return 1;
    }
#endif


    hostent* phe = gethostbyname("www.google.de");

    if(phe == NULL)
    {
        cout << "Host konnte nicht aufgeloest werden!" << endl;
        return 1;
    }

    if(phe->h_addrtype != AF_INET)
    {
        cout << "Ungueltiger Adresstyp!" << endl;
        return 1;
    }

    if(phe->h_length != 4)
    {
        cout << "Ungueltiger IP-Typ!" << endl;
        return 1;
    }

    int Socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(Socket == -1)
    {
        cout << "Socket konnte nicht erstellt werden!" << endl;
        return 1;
    }

    sockaddr_in service;
    service.sin_family = AF_INET;
    service.sin_port = htons(80); // Das HTTP-Protokoll benutzt Port 80

    char** p = phe->h_addr_list; // p mit erstem Listenelement initialisieren
    int result; // Ergebnis von connect
    do
    {
        if(*p == NULL) // Ende der Liste
        {
            cout << "Verbindung fehlgschlagen!" << endl;
            return 1;
        }

        service.sin_addr.s_addr = *reinterpret_cast<unsigned long*>(*p);
        ++p;
        result = connect(Socket, reinterpret_cast<sockaddr*>(&service), sizeof(service));
    }
    while(result == -1);

    cout << "Verbindung erfolgreich!" << endl;
    std::cin.ignore();
    string request = "HEAD /index.php HTTP/1.1\r\nHost: www.google.de \r\n\r\n";
    string ein;
        cout << StopTime(Socket,request);
        cin.ignore()
        cout << StopTime(Socket,request);
        cin.ignore();
        cout << StopTime(Socket,request);
        cin.ignore();
    closesocket(Socket);
}
C/C++ Code:
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
// socket.cpp: Hauptprojektdatei.
#include
"stdafx.h"
#include
<iostream>
#include
<time.h>
#include
<fstream>
#include
<stdexcept> // runtime_error
#include
<sstream>
#include
<winsock2.h>





void SendAll(int socket, const char* const buf, const int size)
{
int bytesSent = 0; // Anzahl Bytes die wir bereits vom Buffer gesendet haben
do
{
int result = send(socket, buf + bytesSent, size - bytesSent, 0);
if(result < 0) // Wenn send einen Wert < 0 zurück gibt deutet dies auf einen Fehler hin.
{
std::cout << WSAGetLastError();
}
bytesSent += result;
} while(bytesSent < size);
}

// Liest eine Zeile des Sockets in einen stringstream
void GetLine(int socket, std::stringstream& line)
{
for(char c; recv(socket, &c, sizeof(c), 0) > 0; line << c)
{
if (c=='\n'){
return;}
}
// throw CreateSocketError();
return;
}

float StopTime(int socket, std::string request){
float sec;
clock_t tvor;
tvor=clock();
SendAll(socket, request.c_str(), request.size());
std::stringstream line;
GetLine(socket, line);
std::cout << line.str() << std::endl;


sec=(static_cast<float>(clock()-tvor))/CLOCKS_PER_SEC;
return sec;
}

int main()
{
using namespace std;

#ifndef
linux
WSADATA w;
if(int result = WSAStartup(MAKEWORD(2,2), &w) != 0)
{
cout << "Winsock 2 konnte nicht gestartet werden! Error #" << result << endl;
return 1;
}
#endif


hostent* phe = gethostbyname("www.google.de");

if(phe == NULL)
{
cout << "Host konnte nicht aufgeloest werden!" << endl;
return 1;
}

if(phe->h_addrtype != AF_INET)
{
cout << "Ungueltiger Adresstyp!" << endl;
return 1;
}

if(phe->h_length != 4)
{
cout << "Ungueltiger IP-Typ!" << endl;
return 1;
}

int Socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if(Socket == -1)
{
cout << "Socket konnte nicht erstellt werden!" << endl;
return 1;
}

sockaddr_in service;
service.sin_family = AF_INET;
service.sin_port = htons(80); // Das HTTP-Protokoll benutzt Port 80

char** p = phe->h_addr_list; // p mit erstem Listenelement initialisieren
int result; // Ergebnis von connect
do
{
if(*p == NULL) // Ende der Liste
{
cout << "Verbindung fehlgschlagen!" << endl;
return 1;
}

service.sin_addr.s_addr = *reinterpret_cast<unsigned long*>(*p);
++p;
result = connect(Socket, reinterpret_cast<sockaddr*>(&service), sizeof(service));
}
while(result == -1);

cout << "Verbindung erfolgreich!" << endl;
std::cin.ignore();
string request = "HEAD /index.php HTTP/1.1\r\nHost: www.google.de \r\n\r\n";
string ein;
cout << StopTime(Socket,request);
cin.ignore()
cout << StopTime(Socket,request);
cin.ignore();
cout << StopTime(Socket,request);
cin.ignore();
closesocket(Socket);
}
C/C++ Code:
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
// socket.cpp: Hauptprojektdatei.
#include
"stdafx.h"
#include
<iostream>
#include
<time.h>
#include
<fstream>
#include
<stdexcept> // runtime_error
#include
<sstream>
#include
<winsock2.h>





void SendAll(int socket, const char* const buf, const int size)
{
    int bytesSent = 0; // Anzahl Bytes die wir bereits vom Buffer gesendet haben
    do
    {
        int result = send(socket, buf + bytesSent, size - bytesSent, 0);
        if(result < 0) // Wenn send einen Wert < 0 zurück gibt deutet dies auf einen Fehler hin.
        {
            std::cout << WSAGetLastError();
        }
        bytesSent += result;
    } while(bytesSent < size);
}

// Liest eine Zeile des Sockets in einen stringstream
void GetLine(int socket, std::stringstream& line)
{
    for(char c; recv(socket, &c, sizeof(c), 0) > 0; line << c)
    {
        if (c=='\n'){
            return;}
    }
   // throw CreateSocketError();
return;
}

float StopTime(int socket, std::string request){
    float sec;
    clock_t tvor;
    tvor=clock();
    SendAll(socket, request.c_str(), request.size());
    std::stringstream line;
        GetLine(socket, line);
        std::cout << line.str() << std::endl;


    sec=(static_cast<float>(clock()-tvor))/CLOCKS_PER_SEC;
    return sec;
}

int main()
{
    using namespace std;

#ifndef
linux
    WSADATA w;
    if(int result = WSAStartup(MAKEWORD(2,2), &w) != 0)
    {
        cout << "Winsock 2 konnte nicht gestartet werden! Error #" << result << endl;
        return 1;
    }
#endif


    hostent* phe = gethostbyname("www.google.de");

    if(phe == NULL)
    {
        cout << "Host konnte nicht aufgeloest werden!" << endl;
        return 1;
    }

    if(phe->h_addrtype != AF_INET)
    {
        cout << "Ungueltiger Adresstyp!" << endl;
        return 1;
    }

    if(phe->h_length != 4)
    {
        cout << "Ungueltiger IP-Typ!" << endl;
        return 1;
    }

    int Socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(Socket == -1)
    {
        cout << "Socket konnte nicht erstellt werden!" << endl;
        return 1;
    }

    sockaddr_in service;
    service.sin_family = AF_INET;
    service.sin_port = htons(80); // Das HTTP-Protokoll benutzt Port 80

    char** p = phe->h_addr_list; // p mit erstem Listenelement initialisieren
    int result; // Ergebnis von connect
    do
    {
        if(*p == NULL) // Ende der Liste
        {
            cout << "Verbindung fehlgschlagen!" << endl;
            return 1;
        }

        service.sin_addr.s_addr = *reinterpret_cast<unsigned long*>(*p);
        ++p;
        result = connect(Socket, reinterpret_cast<sockaddr*>(&service), sizeof(service));
    }
    while(result == -1);

    cout << "Verbindung erfolgreich!" << endl;
    std::cin.ignore();
    string request = "HEAD /index.php HTTP/1.1\r\nHost: www.google.de \r\n\r\n";
    string ein;
        cout << StopTime(Socket,request);
        cin.ignore()
        cout << StopTime(Socket,request);
        cin.ignore();
        cout << StopTime(Socket,request);
        cin.ignore();
    closesocket(Socket);
}
Anlex
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.03.2010
Beiträge: 4
Beitrag Anlex Mitglied 03:09:28 08.03.2010   Titel:              Zitieren

Hallo allerseits! Ich bin momentan noch auf der ersten Seite dieses Threads und arbeite mich da so langsam durch. Habe aber folgendes Problem:

Bei dem "Selfmade nslookup" funktioniert bei mir die Anzeige der Aliases nicht. Wenn ich das nslookup des Terminals benutze, erhalte ich Aliases, die ich mit dem Code aus diesem Thread nicht bekomme (scheine mit dem hiesigen Code GAR KEINE Aliases angezeigt zu bekommen).

Dazu sei noch gesagt, dass ich das ganze für den linuxartigen Teil des Codes mit g++ unter Cygwin kompilieren lasse.

Weiß jemand Rat?


Zuletzt bearbeitet von Anlex am 03:11:01 08.03.2010, insgesamt 2-mal bearbeitet
warum?
Unregistrierter




Beitrag warum? Unregistrierter 22:42:32 15.05.2010   Titel:   funktioniert mit allem außer mit die-stämme            Zitieren

hallo,
hab den quelltext mit vielen Seiten probiert, aber eine Seite funktioniert nicht.
www.die-staemme.de
kann das jemand anderes mal ausprobieren? Da kommt immer Verbingung erfolgreich und dann nichts mehr... Warum ist das so? Wie kann das umgehen?
bot
Unregistrierter




Beitrag bot Unregistrierter 11:30:46 17.05.2010   Titel:              Zitieren

Vielleicht irgendein Bot Schutz ?

"Schutz gegen Cheater"
hjkhjk
Unregistrierter




Beitrag hjkhjk Unregistrierter 16:08:07 17.05.2010   Titel:              Zitieren

bot schrieb:
Vielleicht irgendein Bot Schutz ?

"Schutz gegen Cheater"


Ja, eventuell wird der User-Agent im Header überprüft oder ähnliches, so das Computerprogramme ausgeschlossen werden. Könnte mir das sehr gut vorstellen.
[MOP]
Mitglied

Benutzerprofil
Anmeldungsdatum: 21.11.2009
Beiträge: 94
Beitrag [MOP] Mitglied 21:08:48 19.05.2010   Titel:              Zitieren

Wenn ich die ganze Server-Response in einem std::string x habe, wie extrahiere ich draus den header?
CASIO
Unregistrierter




Beitrag CASIO Unregistrierter 18:35:14 30.06.2011   Titel:              Zitieren

jan1985 schrieb:
Hallo, ich benutze Microsoft Visual Studio und habe Standard C/C++ Kenntnisse, jedoch komme einfach nicht an diesen Linker Fehlermeldungen vorbei:

Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__connect@12" in Funktion "_main". main.obj
Fehler 3 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__inet_addr@4" in Funktion "_main". main.obj
Fehler 4 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__htons@4" in Funktion "_main". main.obj
Fehler 5 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__socket@12" in Funktion "_main". main.obj
Fehler 6 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__WSAStartup@8" in Funktion "_main". main.obj
Fehler 7 fatal error LNK1120: 6 nicht aufgelöste externe Verweise. C:\Users\Jan\msvc\Sockets\Debug\Sockets.exe

Mein Code sieht so aus:
C/C++ Code:
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
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
#include <iostream>
#include
<winsock2.h>
using namespace std;

#define
IP "79.233.22.28"
#define
PORT 80

int main() {
    WSADATA wsa;
    int s;
    sockaddr_in service;
    int result;

    if(result = WSAStartup(MAKEWORD(2,2), &wsa) != 0) {
        cout << "WinSock Library couldn't be loaded!" << endl;
        cout << "Error: " << result << endl;
        return 1;
    }

    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    if(s == -1) {
        cout << "Socket couldn't be set up!" << endl;
        return 1;
    }

    service.sin_family = AF_INET;
    service.sin_port = htons(PORT);
    service.sin_addr.s_addr = inet_addr(IP);
    result = connect(s, reinterpret_cast<sockaddr*>(&service), sizeof(service));

    if(result == -1) {
        cout << "Connection couldn't be established!" << endl;
        return 1;
    }
    cout << "Connection established!" << endl;
    closesocket(s);
}
C/C++ Code:
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
#include <iostream>
#include
<winsock2.h>
using namespace std;

#define
IP "79.233.22.28"
#define
PORT 80

int main() {
WSADATA wsa;
int s;
sockaddr_in service;
int result;

if(result = WSAStartup(MAKEWORD(2,2), &wsa) != 0) {
cout << "WinSock Library couldn't be loaded!" << endl;
cout << "Error: " << result << endl;
return 1;
}

s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if(s == -1) {
cout << "Socket couldn't be set up!" << endl;
return 1;
}

service.sin_family = AF_INET;
service.sin_port = htons(PORT);
service.sin_addr.s_addr = inet_addr(IP);
result = connect(s, reinterpret_cast<sockaddr*>(&service), sizeof(service));

if(result == -1) {
cout << "Connection couldn't be established!" << endl;
return 1;
}
cout << "Connection established!" << endl;
closesocket(s);
}
C/C++ Code:
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
#include <iostream>
#include
<winsock2.h>
using namespace std;

#define
IP "79.233.22.28"
#define
PORT 80

int main() {
    WSADATA wsa;
    int s;
    sockaddr_in service;
    int result;

    if(result = WSAStartup(MAKEWORD(2,2), &wsa) != 0) {
        cout << "WinSock Library couldn't be loaded!" << endl;
        cout << "Error: " << result << endl;
        return 1;
    }

    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    if(s == -1) {
        cout << "Socket couldn't be set up!" << endl;
        return 1;
    }

    service.sin_family = AF_INET;
    service.sin_port = htons(PORT);
    service.sin_addr.s_addr = inet_addr(IP);
    result = connect(s, reinterpret_cast<sockaddr*>(&service), sizeof(service));

    if(result == -1) {
        cout << "Connection couldn't be established!" << endl;
        return 1;
    }
    cout << "Connection established!" << endl;
    closesocket(s);
}


Kann mir damit jemand weiterhelfen?
Vielen Dank schon mal im voraus!
EOP
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.09.2007
Beiträge: 643
Beitrag EOP Mitglied 20:10:10 30.06.2011   Titel:              Zitieren

Entsprechende lib einbinden!
wsock32.lib oder ws2_32.lib - hab vergessen wie die heisst.
jhkhjk
Unregistrierter




Beitrag jhkhjk Unregistrierter 23:55:34 03.07.2011   Titel:              Zitieren

EOP schrieb:
Entsprechende lib einbinden!
wsock32.lib oder ws2_32.lib - hab vergessen wie die heisst.
Letztere.
C/C++ Forum :: Die Artikel ::  Sockets und das HTTP-Protokoll  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.