остановить таймауты на стороне сервера? - PullRequest
0 голосов
/ 07 марта 2012

В моем клиенте я сделал:

TcpClient client = new TcpClient();
client.ReceiveTimeout = 1000;
client.SendTimeout = 1000;

Я также получаю оценки за это на стороне сервера, я попытался проверить с помощью intellisense на моем TCPListener на моем сервере, но я ничего не могу найти.

Есть идеи?

1 Ответ

3 голосов
/ 07 марта 2012

На стороне сервера вы используете TcpListener, который является не чем иным, как Socket или TcpClient фабрикой.

Где-то в коде сервера вы увидите либо AcceptTcpClient, либо AcceptSocket (или их асинхронные аналоги).Что-то вроде:

TcpClient clientConn = listener.AcceptTcpClient();

Теперь у вас есть эквивалент client из фрагмента кода в вашем вопросе.Итак, чтобы установить таймауты:

clientConn.ReceiveTimeout = 1000;
clientConn.SendTimeout = 1000;

Вы можете сделать что-то подобное с Socket экземплярами, если это то, что он использует (я могу выкопать некоторый код, если это так), но в целом это такпочти то же.

ОБНОВЛЕНИЕ

Поскольку на стороне сервера вы используете AcceptSocket вместо AcceptTcpClient, вы можете использовать следующее:

Socket clientConn = listener.AcceptSocket();
clientConn.ReceiveTimeout = 1000;
clientConn.SendTimeout = 1000;

Это в основном идентично, просто используется другой тип для clientConn.

...