Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Локальный HTTP(S) прокси 
:(
    Опции темы
stab
Дата 10.3.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Встала задача написать локальный HTTP(S) прокси на C#, естественно решил использовать System.Net.Sockets. Понадобился такой прокси что бы он не блокировал главный поток приложения, с этим более или менее понятно, асинхронный серверный сокет и проблема решена. Но есть еще одно требования, что бы прокси мог обрабатывать более одного запроса одновременно, почитав документацию так и не понял воможно ли это сделать или нет. Из документации получается, что обрабытывается только один запрос, а остальные стоят в очереди. Просветите кто знает, пажалуйста.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Tomcat
Дата 10.3.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2003
Где: Гродно, Беларусь

Репутация: 2
Всего: 2



Было такое у меня год назад. Только задачка по курсу "Сети ЭВМ" заключалась в написании HTTP сервера. Так как все задачи выполнялись, как всегда, непосредственно за день до сдачи, то я долго не заморачивался на этой проблеме, и обработку запроса запускал отдельным потоком.
Было что-то типа такого:
Код

class Request
{
   private Socket m_requestSocket;
   
   public Request(Socket requestSocket)
   {   
        m_requestSocket = requestSocket;
        //...
   }
   
   public void Process()
   {
         // Метод обработки запроса
   }
   //...
}

В основном классе были примерно такие строчки:
Код

//Ловим новый запрос
Socket client = listener.Accept();
if(client != null)
{
     Request request = new Request(client);
     //создаем объект потока для метода Process
     Thread thread = new Thread(new ThreadStart(request.Process));
     //стартуем обработку запроса.
     thread.Start();
}


Надеюсь не нужно объяснять какого класса объект listener... smile

Это сообщение отредактировал(а) Tomcat - 10.3.2005, 18:50
PM MAIL   Вверх
stab
Дата 11.3.2005, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Спасибо, примерно так и делаю, посмотрим что из этого выйдет ;)


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0650 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.