powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TcpClient.BeginConnect и таймаут
1 сообщений из 1, страница 1 из 1
TcpClient.BeginConnect и таймаут
    #39989786
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно вопрос типа "как сделать таймаут при коннекте клиента" приводит к куче веток на стаковер фло примерно с таким кодом:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 
// Connect using a timeout (5 seconds)
 
IAsyncResult result = socket.BeginConnect( sIP, iPort, null, null );
 
bool success = result.AsyncWaitHandle.WaitOne( 5000, true );
 
if ( !success )
{
            // NOTE, MUST CLOSE THE SOCKET
 
            socket.Close();
            throw new ApplicationException("Failed to connect server.");
}
 
// Success
//...



допустим я соединяюсь к localhost и iPort = 9090. Но никакого "слушателя" на данном порту не запущено

bool success = result.AsyncWaitHandle(...) вернет true, но ведь socket.Connected будет равно false. И если попытаться получить поток с клиента и в него что-то писать - будет эксепшен: "удаленный компутер отверг ... блаблабла"

собственно какое-то половинчатое решение - успешное подключение к "несуществующему" порту

а как получить таймаут по полной задаче - дождаться/не дождаться коннекта к компьютеру + socket.Connected = true ? за условные 10 секунд
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TcpClient.BeginConnect и таймаут
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]