Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Сервер, после завершения


Автор: MaXL 3.6.2007, 15:52
Всем привет!
Пишу консольное приложение, которая постоянно весит в памяти и слушает определённый порт. Но если программу завершить через "Диспетчер задач Windows", то при повторном запуске моего приложения программу уже не может забандить порт(т.е. функция bind возвращает SOCKET_ERROR). Просмотрел, после завершения моей программы, порт на котором она висела остаётся открытым, и с помощью telnet.exe к нему _иногда_ можно подключиться.
Что же это такое? И как с этим бороться или не как?
P.S. если нужен исходник могу кинуть, хотя там стандартное: создание сокета, включение прослушки и бесконечный цикл(обработка подключений), правда для этой процедуры создаётся отдельный поток, в котором она и выполняется, может из за этого всё так плохо?

Автор: ptr 3.6.2007, 17:08
setsockopt и SO_REUSEADDR тебе помогут.

Автор: MaXL 4.6.2007, 03:29
ptr, спасибо. Всё работает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)