3

Есть клиентское приложение. За приложением закреплен только один локальный TCP порт.

Задача: создать несколько сокетов на одном локальном порту и одновременно подключиться с них к нескольким разным серверам в интернете.

Это возможно? Если да - как это сделать? Какие опции поставить в setsockopt?

  • если подключаться по очереди, то все возможно. – KoVadim Jul 27 '17 at 13:38
  • @KoVadim, одновременно имелось ввиду. Дополню вопрос. – user94853275 Jul 27 '17 at 13:39
  • 2
    @Abyx, это уже ограничения заказчика. Приложению разрешено использовать лишь один локальный TCP порт. Понимаю что изврат, но что делать... – user94853275 Jul 27 '17 at 13:40
  • В этом случае нужна прокся. А через нее можно ганять любой траффик – KoVadim Jul 27 '17 at 13:41
  • @KoVadim, следовательно - никак не получится? Про прокси понял. – user94853275 Jul 27 '17 at 13:43
  • ну почему нельзя. Можно конечно, только нужно добавить несколько айпишников. И с каждого с них уже делать подключение. – KoVadim Jul 27 '17 at 13:44
  • @KoVadim, а если не задействовать дополнительные IP адреса на сетевом интерфейсе? Меня вот этот ответ https://ru.stackoverflow.com/a/698007/261345 немного смущает, если в HttpClient-е это реализовано, значит можно без дополнительных IP адресов обойтись. – user94853275 Jul 27 '17 at 13:46
  • http подключения короткие (в идеале) и можно переиспользовать сокет. Но можно биндить серверный сокет с нескольких приложений (в линуксе точно можно) и ядро будет разбрасывать подключения по кругу. – KoVadim Jul 27 '17 at 13:52
  • Задал отдельный вопрос, дабы прояснить ситуацию: https://ru.stackoverflow.com/questions/698547/%d0%9a%d0%b0%d0%ba-%d0%b8%d0%bc%d0%b5%d0%bd%d0%bd%d0%be-%d0%b2-httpclient-%d1%80%d0%b5%d0%b0%d0%bb%d0%b8%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b0-%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bd%d0%b5%d1%81%d0%ba%d0%be%d0%bb%d1%8c%d0%ba%d0%b8%d1%85-%d1%81%d0%be%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5%d0%bd%d0%b8%d0%b9-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%be%d0%b4%d0%b8%d0%bd – user94853275 Jul 27 '17 at 14:17
  • функция bind() Вам в помощь – Sergey Jul 27 '17 at 14:44

0 Answers0