Показать сообщение отдельно

  #3  
Старый 31.07.2009, 00:08
agrofyl2
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме:
146826

Репутация: 17
По умолчанию

Тот код я просто скопировал, не проверял.
А вот правильный, проверенный, специально для тебя:
Код:
#include <winsock2.h> //winsock header
#pragma comment( lib, "ws2_32.lib" ) //winsock lib

#include "iostream"
using namespace std;


int main()
{
	cout << "Work" << endl;

	char servername[]="forum.antichat.net";
	int port=80;

	//Загружаем ВинСок
 	WSADATA wsd;
	if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) {//проверяем загрузилась ли
		cout << "Error load winsock2" << endl;
		return 0;
	}

 	struct sockaddr_in server;
	struct hostent *host = NULL;
	SOCKET sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//Создаем сокет
	if (sClient == INVALID_SOCKET) {//проверяем, нормально ли создался сокет
		cout << "Invalid socket" << endl;
		return 0;
	}
    
    server.sin_family = AF_INET;
    server.sin_port = htons(port);
    server.sin_addr.s_addr = inet_addr(servername);

	if (server.sin_addr.s_addr == INADDR_NONE) //Если указано имя, а не айпишник
    {
        host = gethostbyname(servername);//пробуем его определить
		if (host == NULL) {
			cout << "Can't get IP by hostname..." << endl;
			return 0;
		}
        
        CopyMemory(&server.sin_addr, host->h_addr_list[0],host->h_length);
    }
    
	if (connect(sClient, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR) {
		cout << "Connect filed" << endl;
		return 0;
	}
	//Все, подключились...-----------

	int ret;
	char zapros[]="GET / HTTP/1.1\r\nHost: forum.antichat.net\r\nConnection: Close\r\n\r\n";
	
	ret=send(sClient, zapros, strlen(zapros)+1, 0);//Шлем данные
	if(ret==SOCKET_ERROR) {
		cout << "Socket error" << endl;
		return 0;
	}

	int stat=1;
	while(stat) {
		char get[1024]="";
		ret=recv(sClient, get, 1024, 0);//Получаем данные
		cout << get;
		if(ret==0) stat=0;
		if(ret==SOCKET_ERROR) {
			cout << "Socket error" << endl;
			return 0;
		}
			
	}

	WSACleanup();//Не забываем выгрузить библиотеку
}
Зайди lstyle.ucoz.ru вторая книга - я с ее примеров начал работать с винсок

Последний раз редактировалось agrofyl2; 31.07.2009 в 00:12..
 
Ответить с цитированием