>>есть сервер слушает порт
>>есть клиент на тойже тачке который делает очень быстро и очень много запросов
>>к серверу по tcp/ip
>>в какой-то момент клиент вываливвается с месагой Ресурс недоступен ,
> Это может быть, например, потому что у сервера переполняется очередь входящих
> запросов (та, размер которой задается при listen()). Поскольку клиент находится
> на той же машине, много процессорного времени выделяется именно ему, и сервер не
> успевает делать им accept в оставшееся время.
TIME_WAIT - это состояние серверного сокета, в котором он находится 2msl
времени, чтобы собирать случайно задержавшиеся в сети пакеты.
Таймаут этот можно изменять в различных операционках по разному - во
FreeBSD есть sysctl на эту тему - net.inet.tcp.msl, равный тридцати
секундам по умолчанию. То есть, TIME_WAIT'с будут сидеть минуту на
сервере.
В Линуксе избавится от них можно, например, с помощью
setsockopt(SO_REUSEADDR), который заодно будет выгребать сокеты из
TIME_WAIT для повторного использования для новых коннектов.