День добрый всем! Не знает ли случайно кто-нибудь, чем можно отменить ожидание таймаута после закрытия порта? (Открывается в течении короткого времени несколько сот коннектов, закрываются, после завершения свободных портов в диапазоне 1024-5000 - по дефолту так в ХР - сокеты создаются корректно, но при вызове connect() винсок пишет "Адрес используется"). Курение МСДН не катит (shudwodn с SD_SEND и recv() в цикле после него пробовал, эффект тот же). Можно конечно в реестре, в HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPortWORD поставить 32768 - тогда все успевает корректно завершиться, но это частный случай решения проблемы, нет ли у кого нибудь на примете других способов для этого?
Вот точно - одно слово Мелкософт: To avoid this situation, applications should ensure a graceful shutdown themselves by calling shutdown with the SD_SEND flag and waiting in a recv loop until zero bytes are returned. Not only does this avoid the problem with port reuse, but it also guarantees all data has been received by the peer as well as confirming to the peer that all of its data was successfully received. http://blogs.msdn.com/wndp/archive/2005/08/03/Anthony-Jones.aspx Слов добрых не хватает на таких идиотов (SD_SEND никак не относится к recv в цикле, с точки зрения здравого смысла). Поставил SD_RECEIVE - и все сразу стало как надо Пашет и порты освобождаются гораздо раньше чем 4 минуты