Re[2]: Можно ли использовать занятый эфемерный порт в bind() ?
От: elw00d Россия http://elwood.su
Дата: 18.07.13 08:07
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Здравствуйте, elw00d, Вы писали:


E>>Допустим есть клиент на TCP сокетах, он подключается к какому-то серверу. У клиенского сокета есть локальный порт, например 52042. После того как этот клиент приконнектился, пробуем на этой же (клиентской) машине поднять какой-нибудь TCP сервер, забиндив его на тот же самый порт 52042. Он поднимается и корректно работает (работает на windows и на linux). Dопрос — какого фига ? Есть предположение что эфемерные порты можно юзать в качестве listening, но вот реального подтверждения не смог найти. Может быть, кто-то в курсе этой темы и может сказать точно ?

N_C>В можно код клиента посмотреть? Что-то сомнения у меня, что это работает в Windows...

Используем netcat http://ru.wikipedia.org/wiki/Netcat (для windows можно скачать тут: http://www.securityfocus.com/tools/139)

сервер: nc -l -s 127.0.0.1 -p 10000 -v
клиент: nc 127.0.0.1 10000
(смотрим ephemeral port — например, 49143)
сервер: nc -l -s 127.0.0.1 -p 49143 -v
клиент: nc 127.0.0.1 49143
всё работает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.