Поскольку вы можете вызывать connect(2)
только один раз для потоково-ориентированного сокета, вам действительно необходимо использовать как минимум два сокета для двух одновременных подключений (или попыток подключения).
Вам не нужно bind(2)
ничего на клиентских портах, кроме странных случаев. (Я думаю о демоне portmapper Sun RPC, но, к счастью, прошло уже почти десять лет с тех пор, как я заботился о демоне portmapper. Кроме того, rlogin
требовалось bind(2)
в качестве клиента при использовании метода аутентификации хоста, который было ужасно.)