Идентифицируйте клиента в одноранговом обмене файлами с использованием Java и Corba. И создайте сокет-сокет между двумя клиентами

Я разрабатываю одноранговое приложение для обмена файлами с использованием Java и CORBA. Я новичок в CORBA.

До сих пор я успешно создал клиентскую программу, которая регистрирует файл в базе данных SQL через CORBA. В таблице хранится следующая информация:

  1. имя файла
  2. Поделиться (в основном, он хранит возможность делиться или не делиться файлом в сети)
  3. Имя хоста
  4. Номер порта

Я застрял в этом месте:

  1. Как найти имя хоста и номер порта клиента при регистрации файлов в SQL? Поскольку я считаю, что с именем хоста и номером порта я смогу создать сокетное соединение между двумя клиентскими программами и, следовательно, начать обмен файлами между узлами.

person The Third    schedule 24.08.2014    source источник


Ответы (1)


На данный момент нет стандартизированного способа получить имя хоста/номер порта клиента CORBA, причина в том, что CORBA не привязана только к сокетам, может быть несколько видов транспорта, которые имеют совершенно разные способы адресации. Некоторые ORB имеют некоторые расширения, делающие это возможным, например, TAO имеет функцию TransportCurrent, которая дает доступ к такого рода информации в момент подключения клиента к IIOP. У JacORB есть поддержка org.jacorb.transport.iiop.Current, которая также выглядит похожей, взгляните на нее.

Но почему бы не использовать CORBA для передачи файлов? Тогда вам не нужно получать эту информацию, а просто можно сохранить ссылку на строковый объект и использовать ее позже.

person Johnny Willemsen    schedule 25.08.2014
comment
@Johny, у меня была похожая проблема ... не могли бы вы указать мне несколько примеров совместного использования файлов с помощью corba для успешного создания приложения p2p. - person fscore; 25.08.2014
comment
Есть несколько примеров сервера содержимого в составе TAO, загрузите дистрибутив с download.dre.vanderbilt.edu или проверьте их в Интернете по адресу svn.dre.vanderbilt. .edu/viewvc/Middleware/trunk/TAO/examples/ - person Johnny Willemsen; 25.08.2014
comment
Но как я могу использовать corba для передачи файлов. Меня больше интересует вторая половина вашего ответа. - person fscore; 25.08.2014
comment
@JohnnyWillemsen, что такое строковая ссылка на объект? - person The Third; 25.08.2014
comment
О, хорошо, я понимаю, что это шаг к распознаванию службы на удаленном сервере. Но как он может идентифицировать двух разных клиентов. А затем передавать файлы между ними. - person The Third; 25.08.2014
comment
@TheThird Взгляните на книгу с простым объяснением CORBA для получения дополнительной информации о CORBA и ее концепциях, см. ciaranmchale.com/corba-explained-simply/index.html. Вам нужно получить ссылки на объекты двух клиентов и использовать их для передачи файлов. - person Johnny Willemsen; 25.08.2014
comment
@fscore См. примеры TAO, это серверы контента, и они используют операцию, определенную IDL, для передачи файлов. - person Johnny Willemsen; 25.08.2014
comment
Тест для JacOrbIIOPTransportCurrent: github.com/JacORB/JacORB/blob/master/test/regression/src/test/ - person weberjn; 25.11.2019