ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Косяки с сокетами и непонятки с пониманием http-запросов
  #1  
Старый 28.06.2006, 00:53
Аватар для je0n
je0n
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме:
1543521

Репутация: 272
Отправить сообщение для je0n с помощью ICQ
Question Косяки с сокетами и непонятки с пониманием http-запросов

Косяки с сокетами и непонятки с пониманием http-запросов
Я пытаюсь выучить winsock. Почти получается, но появилась проблема. У меня стоит апач и я подключаюсь программой которую написал на с++ к нему, т.е. к 127.0.0.1 на 80 порт. Затем делаю GET запрос на получение главной страницы, но в ответ не получаю вообще ничего. Я сначала думал, что проблема в моем запросе, но потом поставил тот же запрос в программу на php (идентичную) и апач вернул сообщение bad request. Мои косяки в запросе подтвердились, но ведь и программа на c++ тогда должна была вернуть это сообщение с “bad request”. А она вообще ничего не вернула. Вот у меня два вопроса.
1) как должен выглядеть минимальный GET запрос? Мой запрос вы увидите дальше по тексту в исходниках программ.
2) почему программа на с++ не получает ответа от сервера.?


Вот исходники тех программ:
C++:
Код:
#include <stdio.h>
#include <winsock.h>
#include <windows.h>

int main()
{
	WSADATA wsadata;
	int s,char_len;
	LPSTR str;
	struct sockaddr_in addr_c,addr_s;

	WSAStartup(MAKEWORD(2,0),&wsadata);
	s=socket(AF_INET,SOCK_STREAM,0);
	memset((char *)&addr_c,0,sizeof(addr_c));
	addr_c.sin_family=AF_INET;
	addr_c.sin_port=80;
	addr_c.sin_addr.s_addr=INADDR_ANY;
	bind(s,(struct sockaddr *)&addr_c,sizeof(addr_c));

	memset((char *)&addr_s,0,sizeof(addr_s));
	addr_s.sin_family=AF_INET;
	addr_s.sin_port=80;
	addr_s.sin_addr.s_addr=inet_addr("127.0.0.1");

	if(connect(s,(struct sockaddr *)&addr_s,sizeof(addr_s))==-1)puts("connect error");
	str=(LPSTR)GlobalAlloc(GHND,0);
	str="GET index.html HTTP/1.1\r\n\r\n";
	send(s,str,100,0);
	char_len=recv(s,str,1000,0);
	puts(str);
	puts("end...");
	return 0;
}

php:
Код:
<?php
$tosend="GET index.html HTTP/1.1\r\n\r\n ";
echo $tosend."<br>";
$s=fsockopen("127.0.0.1",80);
if($s)
{
  fwrite($s,$tosend);
  $tosend=fread($s,1000);
  echo $tosend;
}
?>
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Живые прокси xdx ICQ 111 15.04.2007 13:10
Косяки мля... ZаСo Болталка 11 13.03.2006 17:52
Генерация HTTP запросов на c++ Trinity С/С++, C#, Delphi, .NET, Asm 16 21.01.2006 17:22
Журнал http запросов stas Болталка 26 03.03.2003 11:22



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ