crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Завершение соединения между клиентом и сервером, после завершения процесс висит еще некоторое время
pawok11
  опции профиля:
сообщение 5.2.2010, 17:24
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 5.2.2010
Пользователь №: 1445

Спасибо сказали: 0 раз(а)




Репутация:   0  


Запущен QTcpServer. На каждое входящее сообщение запускается свой поток обработки QThread, в котором вызывается QTcpSocket. После окончания обмена данными QTcpSocket закрывается
tcpSocket->disconnectFromHost();
tcpSocket->close();

и поток закрывается, связанный сигналом
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));

Слот срабатывает, все отрабатывается.
Теперь если под виндой запустить netstat -a -o получаю вот такое
Имя Локальный адрес Внешний адрес Состояние PID
...
TCP comp:6090 comp:6510 TIME_WAIT 0

и соединение будет еще висеть где-то 1,5 мин.

Сервер работает с разными клиентами и при обмене с каждым по несколько раз в секунду, такого рода процессы накапливаются и висят, пока не отваливаются где-то через 1.5 минуты.

Как сделать так чтобы этот процесс сразу же пропадал после завершения потока QThread?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
azure
  опции профиля:
сообщение 9.2.2010, 16:03
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 24.12.2009
Пользователь №: 1332

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(pawok11 @ 5.2.2010, 16:24) *
Как сделать так чтобы этот процесс сразу же пропадал после завершения потока QThread?


Главный вопрос: зачем?
Это делает операционная система с целью снижения нагрузки на стек tcp/ip (для облегчения установления новых соединений). Держится соединене в таком состоянии 2 минуты по умолчанию.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 14:30