Пишу програмку для соединения по http с yande.ru и т.п. Програмка не работает, не могу понят почему. Вчера всю ночь ковырял прогу и поисковики (через оперу =) - ничего не помогает. Вот код программы:
#include <iostream>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
//===========================
#define CLNT_PORT 1256;
int mysock;
//===========================
using namespace std;
int main(int argc, char ** argv)
{
{
//struct hostent * myHost = gethostbyname(argv[1]);
mysock = socket(AF_INET, SOCK_STREAM, 0);
if(mysock==-1)
{
return 1;
};
struct sockaddr_in mySin;
memset((char *)&mySin,'\0',sizeof(mySin));
mySin.sin_family = AF_INET;
mySin.sin_port = htons(1326);
mySin.sin_addr.s_addr = INADDR_ANY;
if(bind(mysock,(struct sockaddr*)&mySin,sizeof(mySin))!=0)
{
return 2;
};
struct sockaddr_in srvSin;
srvSin.sin_family = AF_INET;
struct hostent *hp;
//hp = gethostbyname("ya.ru");
//if (hp==0) {cout<<"!!!";return 123;};
//memcpy((char*)&srvSin.sin_addr,hp->h_addr_list[0],hp->h_length);
//cout<< hp->h_addr;
//srvSin.sin_addr.s_addr = inet_addr(hp->h_addr_list[0]);
srvSin.sin_addr.s_addr = inet_addr("213.180.204.8");
srvSin.sin_port = htons(80);
if(connect(mysock,(const sockaddr*)&srvSin,sizeof(srvSin))!=0)
{
return 3;
};
cout<<"1\n";
char * GetMe = "GET /index.html HTTP/1.0\n\n";
send(mysock,GetMe,sizeof(GetMe),0);
cout<<"2\n";
char *buf[640];
recv(mysock,buf,10,0);
cout<<"3\n";
cout<<buf;
LogMes("All OK!");
close(mysock);
return 0;
}
return 0;
}