Я унаследовал код, который явно ужасен с точки зрения синтаксиса, логики и знаний. Я должен предположить, что приведенный ниже код также ужасен, потому что это был тот же разработчик, но я не эксперт по сокетам, поэтому хочу понять, почему был написан этот код. Надо было сделать по-другому?
Приведенный ниже _socket берется из TcpListener.AcceptSocket(), а затем сразу после этого вызывается эта функция. Здесь меня очень многое смущает.
Во-первых, зачем устанавливать Blocking = true? Разве не правда, что после того, как сокет принят, он все равно больше не блокируется?
В конечном итоге я хочу сделать следующее: дать сокету X секунд для выполнения задачи, после чего время ожидания истекает. Я знаю, что клиенты уже установили для этого свой тайм-аут, но здесь, на сервере, я знаю, что тайм-ауты полезны для предотвращения исчерпания сокетов. Близок ли приведенный ниже код к корректной настройке? Таймаута приема нет. Это всего лишь очень странный код, как и вся остальная работа, которую мне пришлось разобрать.
public void ConfigureSocket()
{
int timeout = 500; // in milliseconds
_socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout );
_socket.Blocking = true;
_socket.SendTimeout = 1000;
_socket.SendBufferSize = 8192;
_socket.LingerState = new LingerOption( true, 10 );
}
Обработка сокетов C# – как установить тайм-аут ⇐ C#
Место общения программистов C#
-
Anonymous
1776780584
Anonymous
Я унаследовал код, который явно ужасен с точки зрения синтаксиса, логики и знаний. Я должен предположить, что приведенный ниже код также ужасен, потому что это был тот же разработчик, но я не эксперт по сокетам, поэтому хочу понять, почему был написан этот код. Надо было сделать по-другому?
Приведенный ниже _socket берется из TcpListener.AcceptSocket(), а затем сразу после этого вызывается эта функция. Здесь меня очень многое смущает.
Во-первых, зачем устанавливать Blocking = true? Разве не правда, что после того, как сокет принят, он все равно больше не блокируется?
В конечном итоге я хочу сделать следующее: [b]дать сокету X секунд для выполнения задачи, после чего время ожидания истекает.[/b] Я знаю, что клиенты уже установили для этого свой тайм-аут, но здесь, на сервере, я знаю, что тайм-ауты полезны для предотвращения исчерпания сокетов. Близок ли приведенный ниже код к корректной настройке? Таймаута приема нет. Это всего лишь очень странный код, как и вся остальная работа, которую мне пришлось разобрать.
public void ConfigureSocket()
{
int timeout = 500; // in milliseconds
_socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.SendTimeout, timeout );
_socket.Blocking = true;
_socket.SendTimeout = 1000;
_socket.SendBufferSize = 8192;
_socket.LingerState = new LingerOption( true, 10 );
}
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия