Шаг 3 - Наращиваем сервер, Где - там он заголовок HTTP ?

Продолжение сервера начатого в WinSock

Первое, что я решил сделать это добавить опредление адреса клиента в LOG

CString addr=inet_ntoa(socketclientaddr.sin_addr);
HTTPServer.LogsWriteNotTime("Адрес клинета - " + addr);

И теперь лог выглядит так:

.......
17 : 52 :07
Запрос соединение клиентом
Адрес клинета - 194.186.181.23
17 : 52 :07
.......

А вот теперь после соединения посморим, что нам посылает клиент :-))). С записью в LOG файл.

//......
{
	AfxMessageBox("Invalid Client Socket");
	return 0L;
}
CString addr=inet_ntoa(socketclientaddr.sin_addr);
HTTPServer.LogsWriteNotTime("Адрес клинета - " + addr);
//------- Start ReadDataClient
int ErrorRecv;
char bufferrecv[200];
ErrorRecv=recv(HTTPServer.clientsocket,bufferrecv,sizeof(bufferrecv),0);
HTTPServer.LogsWriteNotTime("Load data\n");
HTTPServer.LogsWriteNotTime(bufferrecv);
//-------- Cansel ReadDataClient
CString buff="<html>\n<p>Сайт шаг за шагом представляет\n</html>\r\n";
//......

Как видите я использовал функцию recv для получения информации. Передал её сокет, адрес буфера и его длину, флаги выставлять не стал.

int recv(  
	SOCKET s,
	char FAR* buf,
	int len,        
	int flags 
);

Ну что пора посмотреть лог ... чего там. Он сейчас страшный, но нам нужно узнать передается что-нибудь или нет :-))) Запустите программу, потом сам сервер. Включите поддержку LOG и подключайтесь. А теперь смотрим FirstStepServer.log.

......
20 : 15 :04
Запрос соединение клиентом
Адрес клинета - 194.186.181.2
Load data
GET / HTTP/1.1
Accept: application/vnd.ms-excel, */*
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Host: 194.186.181.2
Connection
20 : 15 :04
Отсоединение клиента
20 : 15 :10
......

Мы его засекли. Коряво правда без обработки ошибок я бы сказал в лоб и нагло. Но вот он попался !!!


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.01.2000