Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.04.2017
Сообщений: 6
1

Ответ от HTTP сервера. Ошибка net::ERR_CONNECTION_RESET

18.10.2017, 15:15. Показов 2747. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Очень нужна помощь с ответом от сервера HTTP. Задача:
Есть простой самописный HTTP server, который постоянно слушает входяшие подключения. Как только в браузере вносишь ИПадрес_сервера:порт, сервер должен вернуть текст в окно браузера. Но вся сложность в том, что сервер не должен читать входящий запрос. Тоесть, как только он увидел, что к нему коннектятся по определённому порту, ему должно быть всё-равно, что это за запрос. Нужно просто прислать html страничку.
Привожу пример кода. Ответ сервера в методе handleGETRequest(). Если внести команду: telnet адресс порт, то сервер сразу же отдаёт текст правильно.
Но если зайти через браузер, получаю ошибку "Не удается получить доступ к сайту".
В консоли самого браузера появляется ошибка:"GET http://адрес_сервера:порт net::ERR_CONNECTION_RESET"
Так же в коде есть 3 закоментированые строки:
//inputStream = new BufferedStream(socket.GetStream());
//parseRequest();
//readHeaders();
Если их раскоментировать, то ответ в браузер приходит правильный. В этих методах читается входной поток, парсится и читаются заголовки. Больше ничего.
Тоесть, если просто читать входной запрос, то браузер принимает ответ сервера правильно. Но стоит убрать чтание заголовков, и получаем ошибку. Почему?
Как сделать, чтобы ответ приходил, не читая входящие запросы?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public void listen()
 {
   listener = new TcpListener(adr, port);
   listener.Start();
    while (is_active)
    {
     TcpClient s = listener.AcceptTcpClient();
     HttpProcessor processor = new HttpProcessor(s, this);
     Thread thread = new Thread(new ThreadStart(processor.process));
     thread.Start();
     Thread.Sleep(1);
     }
  }
 
 public void process()
{
  outputStream = new StreamWriter(new BufferedStream(socket.GetStream()));
  try {
      //inputStream = new BufferedStream(socket.GetStream());
      //parseRequest();
      //readHeaders();
      handleGETRequest();
      }
  catch (Exception e)
      {
       writeFailure();
       Library.WriteLog("Exception  " + e.ToString());
      }
       outputStream.Flush();
       outputStream = null; 
       socket.Close();
}
 
public void handleGETRequest()
{
 srv.handleGETRequest(this);
}
 
public override void handleGETRequest(HttpProcessor p)
{
  p.outputStream.WriteLine("HTTP / 1.1 200 OK");
  p.outputStream.WriteLine("Content-Type: text/html; charset=UTF-8");
  p.outputStream.WriteLine("Transfer-Encoding: chunked");
  p.outputStream.WriteLine("Connection: keep-alive");
  p.outputStream.WriteLine("Keep-Alive: timeout=2000");
  p.outputStream.WriteLine("Cache-Control: max-age=0\n");
  p.outputStream.WriteLine("<html>");
  p.outputStream.WriteLine("<head><title> 200 Test </title></head>");
  p.outputStream.WriteLine("<center><h1> 302 Test2 ");
  p.outputStream.WriteLine(Service1.GetData());
  p.outputStream.WriteLine("</h1></center>");
  p.outputStream.WriteLine("<hr><center> nginx </center>");
  p.outputStream.WriteLine("</body>");
  p.outputStream.WriteLine("</html>");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2017, 15:15
Ответы с готовыми решениями:

Http сервер и клиент. При попытке получить ответ клиента от сервера ошибка: Поток был недоступен для чтения
Здравствуйте, пытаюсь разобраться с написанием клиент-серверного приложения используя сокеты....

Ошибка HTTP 500 - внутреняя ошибка сервера при отправке почты.
Я пытаюсь отправить почту и присоединяю к ней письма Вот часть страницы Dim myMail Set myMail =...

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к...

Ни как не могу настроить IIS5 пишет внутренняя ошибка сервера HTTP 500
Ни как не могу настроить IIS5 пишет внутренняя ошибка сервера HTTP 500 в логах сайта ошибка 401...

0
18.10.2017, 15:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2017, 15:15
Помогаю со студенческими работами здесь

Ошибка сервера в приложении ASP.net
Публикую сайт в каталог IIS. По умолчанию путь к файлу БД остаётся там, где я её разрабатывал. При...

Ошибка 101 (net::ERR_CONNECTION_RESET)
Windows 7 Профессиональная SP1 (Лицензионный, ежедневно обновляемый), в домене, ошибка возникает...

Ответ HTTP-сервера
Доброго времени суток. Имеется HTTP-сервер. К нему обращается клиентский JS-код. var xmlHttp...

Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка
Установил сегодня 7ку , все вроде нормально , поствил гугл хром и мемогу зайти на сайт gmail на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru