Продолжение сервера начатого в 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 ......
Мы его засекли. Коряво правда без обработки ошибок я бы сказал в лоб и нагло. Но вот он попался !!!