http_teste.cpp 1.23 KB
#include "jsocket.h"
#include "jdatagramsocket.h"

#include <iostream>
#include <stdexcept>

#include <string.h>

using namespace jsocket;

void http_1() {
	std::string buffer = "GET / HTTP/1.0\r\n\r\n";
	std::string receive;;
	
	try {
		Socket c("127.0.0.1", 80);

		std::ostream &o = c.GetOutputStream();
		std::istream &i = c.GetInputStream();

		o << buffer << std::flush;
	
		do {
			i >> receive;

			std::cout << receive << std::endl;
		} while (!i.eof());
		
		do {
			i >> receive;
			
			// std::cout << receive << " ";
		} while (!i.eof());
		
		c.Close();
	} catch (std::runtime_error &e) {
		std::cerr << "error: " << e.what() << std::endl;
	}
}

void http_2() {
	char *buffer = "GET / HTTP/1.0\r\n\r\n";
	char receive[4098];
	size_t length;
	
	try {
		Socket c("127.0.0.1", 80);

		c.Send(buffer, strlen(buffer));
	
		do {
			length = c.Receive(receive, 4096);

			if (length == 0) {
				std::cerr << "Host disconnect" << std::endl;
				break;
			}
			
			receive[length] = '\0';
			
			std::cout << receive << std::flush;
		} while (true);
		
		c.Close();
	} catch (std::runtime_error &e) {
		std::cerr << "error: " << e.what() << std::endl;
	}
}


int main()
{
	http_2();
}