b***@gmail.com
2007-05-17 16:23:18 UTC
Witam
Przy pomocy Beej's Guide to Network Programming (http://beej.us/guide/
bgnet/output/html/multipage/index.html) napisalem taki kod:
#include <winsock2.h>
#include <iostream>
#define DEST_IP "127.0.0.1"
#define DEST_PORT 80
int main() {
SOCKET gniazdo;
SOCKET polaczenie;
struct sockaddr_in dest_addr;
gniazdo = socket(PF_INET, SOCK_STREAM, 0);
std::cout << gniazdo << std::endl;
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(DEST_PORT);
dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);
memset(&(dest_addr.sin_zero), '\0', 8);
polaczenie = connect(gniazdo, (struct sockaddr *)&dest_addr,
sizeof(struct sockaddr));
std::cout << polaczenie << std::endl;
char *msg = "lol";
int len = std::strlen(msg);
std::cout << "msg: " << msg << std::endl;
std::cout << "len: " << len << std::endl;
int bytes_sent = send(gniazdo, msg, len, 0);
std::cout << bytes_sent << std::endl;
closesocket(gniazdo);
return 0;
}
zwraca on (u mnie):
4294967295
4294967295
msg: lol
len: 3
-1
1. dlaczego zwraca blad przy wysylaniu czegos do socketa?
2. czy wysylajac na port 80 i odpowiedni adres naglowek HTTP moge
uzyskac dane z tego serwera uzywajac funkcji recv() ?
Pozdrawiam
Przy pomocy Beej's Guide to Network Programming (http://beej.us/guide/
bgnet/output/html/multipage/index.html) napisalem taki kod:
#include <winsock2.h>
#include <iostream>
#define DEST_IP "127.0.0.1"
#define DEST_PORT 80
int main() {
SOCKET gniazdo;
SOCKET polaczenie;
struct sockaddr_in dest_addr;
gniazdo = socket(PF_INET, SOCK_STREAM, 0);
std::cout << gniazdo << std::endl;
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(DEST_PORT);
dest_addr.sin_addr.s_addr = inet_addr(DEST_IP);
memset(&(dest_addr.sin_zero), '\0', 8);
polaczenie = connect(gniazdo, (struct sockaddr *)&dest_addr,
sizeof(struct sockaddr));
std::cout << polaczenie << std::endl;
char *msg = "lol";
int len = std::strlen(msg);
std::cout << "msg: " << msg << std::endl;
std::cout << "len: " << len << std::endl;
int bytes_sent = send(gniazdo, msg, len, 0);
std::cout << bytes_sent << std::endl;
closesocket(gniazdo);
return 0;
}
zwraca on (u mnie):
4294967295
4294967295
msg: lol
len: 3
-1
1. dlaczego zwraca blad przy wysylaniu czegos do socketa?
2. czy wysylajac na port 80 i odpowiedni adres naglowek HTTP moge
uzyskac dane z tego serwera uzywajac funkcji recv() ?
Pozdrawiam