![]() |
|
|
![]()
|
|
| lavan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
нужно организовать клиент-серверное приложение по протоколу udp.делаю так:
на каждом компе есть общеизвестный udp сокет,который прослушивается отдельным потоком.когда кто-то хочет связаться с этим компом,он посылает пакет на этот сокет,получив пакет,поток прослушивающий этот сокет передает его другому потоку(обработчику),"обработчик" создает для этого соединения отдельный сокет и передает данные о новом сокете запрашивающей стороне,дальнейшее взаимодействие между этими компами происходит по этому сокету. т.е для каждого нового соединения будет создаваться новый,отдельный сокет. Правильный ли это подход? |
|||
|
||||
| Maksys |
|
|||
|
Future Splasher ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1289 Регистрация: 15.6.2005 Где: Екатеринбург Репутация: нет Всего: 17 |
А если так:
1. клиент посылает запрос на сервер по TCP с открытым для сервера udp портом; 2. в ответ сервер открывает UDP порт и отправляет в ответе на TCP запрос; 3. сервер поделючается к порту указанному в запросе, от клиента, по udp; 4. клиент берет порт в ответе и цепляетс к серверу по udp. Таким образом у нас полностью рандомная открывалка портов. со сто процентным tcp портом для связи с сервером. хотя хз. ) |
|||
|
||||
| lavan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
не,tcp к сожелению использовать нельзя. ну а на счет
если я правильно понял,то если первый пакет потеряется,то,я не думаю,что посылка нового пакета будет сильно ресурсоемкой. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Не очень. Либо будут проблемы общения с клиентом за NAT, либо возможны пересечения запросов на коннект и потери запросов. Обработчик должен отдавать сведения о новосозданном сокете общему сокету, который и будет возвращать клиенту ответ по уже установленному каналу передачи. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| lavan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
здесь имеется в виду,что если пришел запрос на соединение,то после открытия нового сокета,передать данные о нем по старому сокету,и тогда сторона инициирующая соединение,дальнейшую связь будет вести по новому сокету? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Почти так.
Поступил от клиента запрос на соединение. Открывается новый сокет (на своём порте). Основной сокет отправляет клиенту сведения о новом сокете. Клиент закрывает соединение с основным сокетом, после чего открывает соединение с сокетом, загруженным специально для него. Всё как, например, в пассивном ФТП, только по УДП. Рекомендую также вместе со сведениями о созданном под клиента совете передавать некую случайную информацию, возврат которой (лучше сложномодифицированной) будет ожидать новосозданный сокет от клиента. Ну так, для доп. проверки подлинности... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| lavan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
Спасибо за помощь!
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |