1 / 1 / 2
Регистрация: 17.09.2013
Сообщений: 67
|
|||||||||||
1 | |||||||||||
Порты TClientSocket не освобождаются30.06.2014, 22:38. Показов 1195. Ответов 2
Метки нет (Все метки)
Здраствуйте, пишу две мелкие программы для обемна сообщениями, серверная часть (использует TServerSocket) и клиентская (TClientSocket). Все события вывожу в memo для наглядности.
Заметил что при подключении к серверу клиентский сокет имеет вседа разный порт (у сервера один). Вот часть лога подключений: 22:12:31 > client connected; Host: ASUS99X.Home (192.168.1.3); Port: 52765 22:12:33 > client ASUS99X.Home disconnected 22:12:33 > client connected; Host: ASUS99X.Home (192.168.1.3); Port: 52767 22:12:34 > client ASUS99X.Home disconnected 22:12:34 > client connected; Host: ASUS99X.Home (192.168.1.3); Port: 52769 22:12:35 > client ASUS99X.Home disconnected 22:12:35 > client connected; Host: ASUS99X.Home (192.168.1.3); Port: 52770 22:12:36 > client ASUS99X.Home disconnected 22:12:36 > client connected; Host: ASUS99X.Home (192.168.1.3); Port: 52775 22:12:36 > client ASUS99X.Home disconnected 22:12:36 > client connected; Host: ASUS99X.Home (192.168.1.3); Port: 52776 22:12:37 > client ASUS99X.Home disconnected 22:12:37 > client connected; Host: ASUS99X.Home (192.168.1.3); Port: 52777 22:12:37 > client ASUS99X.Home disconnected и т.д. Почему при отключении не освобождаются сокеты? Плохо ли это, и как с этим бороться? Часть кода серверной части:
0
|
30.06.2014, 22:38 | |
Ответы с готовыми решениями:
2
Освобождаются ли ресурсы в данном случае Не освобождаются ресурсы после закрытия Activity Освобождаются ли ресурсы при создании скриншота экрана? При выключении режима игры в редакторе не освобождаются ресурсы |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
01.07.2014, 10:35 | 2 |
Не освобождаться они могут только по одной причине - не вызван метод Socket.Close в обработчике события OnError клиентского сокета при условии неуспешной попытки подключения к серверу.
То что локальные порты всегда разные - в даннном случае это совершенно нормально и никоим образом не говорит о неосвобождении сокета. Бороться с этим можно, но не нужно, ибо борьба эта имеет смысл только в ограниченном числе частных случаев, к коим твой случай вряд ли относится.
2
|
1 / 1 / 2
Регистрация: 17.09.2013
Сообщений: 67
|
|
02.07.2014, 22:52 [ТС] | 3 |
ясно, спасибо за инфу
0
|
02.07.2014, 22:52 | |
02.07.2014, 22:52 | |
Помогаю со студенческими работами здесь
3
Закрыть порты на серверном терминале (какие порты в данном случае можно закрыть?) TServerSocket и TClientSocket TClientSocket и TServerSocket TClientSocket и TServerSocket Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |