может поможет кто ?
От: Фока  
Дата: 16.05.02 05:26
Оценка:
Пишу клиента НТТР вот краткий код

#include <winsock.h>

BOOL Connect()
{
CString host_http += "www.aaanet.ru";
UINT a;
SOCKET s;
char sz1[0x8000], sz2[0x8000];
WSADATA wsaData;
ULONG ulAddress;
SOCKADDR_IN sin;

//== инициализация winsock
if (WSAStartup(MAKEWORD(1, 1), &wsaData))
{
WSACleanup();
return 0;
}


//== открыть сокет
s = socket(AF_INET, SOCK_STREAM, NULL);
if (s == INVALID_SOCKET)
{
closesocket(s);
WSACleanup();
return 0;
}

//== получить данные о сервере
ulAddress = inet_addr(host_http);
if (ulAddress == INADDR_NONE)
{
HOSTENT *ptrHost;
ptrHost = gethostbyname(host_http);

if (!ptrHost)
{
closesocket(s);
WSACleanup();
return 0;
}

memcpy(&sin.sin_addr, ptrHost->h_addr_list[0], sizeof(IN_ADDR));

}
else
{
memcpy(&sin.sin_addr, &ulAddress, 4);
};

sin.sin_family = AF_INET;
sin.sin_port = htons(80);

//== установить соединение с сервером
printer("To connect server.", 1);
if (connect(s, (PSOCKADDR)&sin, sizeof(SOCKADDR)))
{
closesocket(s);
WSACleanup();
return 0;
}

a = recv(s, sz1, sizeof(sz1), NULL);

if (a == SOCKET_ERROR)
{
closesocket(s);
WSACleanup();
printer("Socket error.", 1);
return 0;
}
sz1[a] = 0;
printer(sz1);
}

проблема в том чтоя не могу получить данные из сокета.
agilero
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.