Принятие Вы говорите C/C++, использование setsockopt()
и SO_REUSEADDR
. Это позволяет повторное использование, пока нет никакого активного процесса, слушая тот порт.
Править: Причина это все еще используется, является Вами, не закрыл сокет соответственно. Вы Ctrl-C уничтожили его. Можно использовать netstat
видеть порты, которые открыты или не совсем закрыты все же.
http://www.beej.us/guide/bgnet/output/html/multipage/setsockoptman.html
https://stackoverflow.com/questions/10071107/rebinding-a-port-to-datagram-socket-on-a-difftent-ip
Не решение POSIX, но сортировка GNU предлагает параметр -g
, который поддерживает более широкий диапазон спецификаций чисел, включая бесконечность. Из http://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html -
‘-g’
‘--general-numeric-sort’
‘--sort=general-numeric’
Sort numerically, converting a prefix of each line to a long double-precision
floating point number. See Floating point. Do not report overflow, underflow, or
conversion errors. Use the following collating sequence:
Lines that do not start with numbers (all considered to be equal).
NaNs (“Not a Number” values, in IEEE floating point arithmetic) in a
consistent but machine-dependent order.
Minus infinity.
Finite numbers in ascending numeric order (with -0 and +0 equal).
Plus infinity.
Use this option only if there is no alternative; it is much slower than
--numeric-sort (-n) and it can lose information when converting to floating
point.
Из моих собственных тестов кажется, что любая строка, начинающаяся с Inf
(любая комбинация верхнего и нижнего регистра) появится после любых цифр.
Я не думаю, что существуют какие-либо последовательности символов, которые надежно отсортированы после чисел с помощью sort -n
. Кажется, что GNU sort сначала обрабатывает все другие последовательности как ноль, помещая после отрицательных чисел, но перед положительными. Что вы могли бы сделать, если сортируются временные метки, - это использовать максимальное значение для 64-битной временной метки плюс один:
9,223,372,036,854,775,808
Это на несколько цифр больше, чем вы начали!