All pastes #801351 Raw Edit

Untitled

public text v1 · immutable
#801351 ·published 2007-11-29 05:11 UTC
rendered paste body
#include <netdb.h>
#include <netinet/in.h>
#include <unistd.h>
#include <iostream>

using namespace std;

int main() {
	int fp;
	char buffer[1024];	
	struct sockaddr_in serverAddress;
	struct hostent *hostInfo;
	
	char header[] = "GET / HTTP/1.1\r\nHost: www.google.com\r\nConnection: Close\r\n\r\n";

	hostInfo = gethostbyname("www.google.com");

	fp = socket(AF_INET, SOCK_STREAM, 0);
	if(fp < 0) {
		cerr << "cannot create socket!\n";
		exit(1);
	}

	serverAddress.sin_family = hostInfo->h_addrtype;
	memcpy((char *) &serverAddress.sin_addr.s_addr,
		hostInfo->h_addr_list[0], hostInfo->h_length);
	serverAddress.sin_port = htons(80);

	if (connect(fp,
			(struct sockaddr *) &serverAddress,
			sizeof(serverAddress)) < 0) {
	  	cerr << "connection failed.\n";
		exit(1);
	}

	if(send(fp, header, 60, 0) < 0) {
		cerr << "cannot send data.\n";
		close(fp);
		exit(1);
	}

	if(recv(fp, buffer, 1024, 0) < 0) {
		cerr << "no response from server.";
		close(fp);
		exit(1);
	}

	cout << buffer << "\n--end data--\n";

	return 0;
}