![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
legat |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Есть клиент-серверное приложение, и в функционале есть чат(личка). Этот чат надо переделать под .net remoting, чтоб клиенты посылали сообщения друг-другу напрямую, не напрягая лишний раз сервак, для это с сервака каждому клиенту посылаются айпи его друзей. Проблема в следующем, если один из клиентов сидит за роутером, то получается с сервака( сервер на с++) отправить лишь айпи роутера
(Function returned: Official name: homeuser52-36.ccl.perm.ru Address type: AF_INET Address length: 4 IPv4 Address #1: 62.16.52.36) по которому начать взаимодействие клиенты не могут. Как получить полный адрес клиента? З.Ы. Настройки роутера трогать нельзя. Оба клиента подключены к серверу, у него есть их адреса, необходимо связать их между собой напряую. |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
А чем тебя не устраивает общение через порт А:5555? Нужно только реализовать еще один уровень (соответствует application) в твоем протоколе связи. То есть изначально, допустим, А общается с С через порт 5555 (это стандартный порт в твоей кухне). И Б тоже общается с С через свой порт 5555. Теперь Б хочет переслать большой блок данных непосредственно А, минуя С. Он шлет С спец запрос на связь с А. С отвечает Б: запрос принят, жди. Потом С говорит А (все по тому же стандартному управляющему каналу, через 5555) : сделай новый канал. Тогда А открывает новый порт (уже случайный, любой свободный) на С. С получает пакет от А и считывает оттуда айпи:порт. Эти данные он передает Б. После этого Б шлет на них, что хотел. Канал закрывается или остается открытым - это все уже вопросы реализации твоего протокола уровня приложения..
Замечание: все, конечно, через UDP. Что я тут не учел? С кодом сейчас помочь не смогу.. мож, кто другой? ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 8:12 |