src
— исходный код;lib
— зависимые библиотеки.jdk11 в среде vscode с использованием Java Extension.
— com.rftx.auth
предоставляет интерфейс аутентификации при установлении соединения и по умолчанию способ проверки токена;
— com.rftx.conn
управляет соединением во время работы, а также передаёт соединение между потоками;
— com.rftx.core
представляет собой сервер и клиент в работе RFTX;
— com.rftx.exception
содержит классы исключений;
— com.rftx.listener
определяет интерфейс прослушивателя событий во время работы и реализуется на верхнем уровне;
— com.rftx.util
включает в себя набор утилит;
— com.rftx.test
содержит тестовые классы.
— com.rftx.core.RFTXHost
определяет хост RFTX, который является обязательным для всех вызывающих объектов: клиент, сервер или оба одновременно. RFTXHost сохраняет все управляющие и передающие соединения, созданные RFTXServer
или RFTXClient
.
— com.rftx.core.RFTXServer
определяет программу сервера RFTX. Этот объект содержится в RFTXHost и создаётся указанным методом. RFTXServer является потоком, который после запуска блокируется для приёма соединений и сохраняет их в списке соединений RFTXHost.
— com.rftx.core.RFTXClient
определяет клиентскую программу RFTX. Этот объект также содержится в RFTXHost и создаётся указанным способом. RFTXClient включает метод connect(String addr, int port)
, который используется для подключения к RFTXServer, запущенному на указанном адресе и порту.
Один RFTXHost содержит объекты RFTXServer и RFTXClient. Эти объекты инициализируются определёнными методами. RFTXHost включает три списка соединений, которые хранят управляющие соединения, передающие соединения и неопределённые соединения. Все соединения, созданные RFTXClient или принятые RFTXServer в одном RFTXHost, сохраняются в соответствующих списках. Это означает, что соединения, управляемые RFTXServer и RFTXClient, будут совместно использоваться в одном RFTXHost.
Обычно в программе создаётся только один объект RFTXHost:
RFTXHost host = new RFTXHost("hostName"); // создание объекта RFTXHost с именем hostname
hostname
используется для идентификации друг друга при соединении и отличается от токена. Он не будет проверен, а служит только для идентификации личности.initServer(int port)
или initClient()
объекта RFTXHost для инициализации объектов RFTXServer или RFTXClient внутри RFTXHost.server
или client
необходимо вызвать метод init, иначе будет выброшено исключение NullPointerException.Предполагается, что уже определён объект host: RFTXHost (это обязательно):
host.initServer(3000); // открытие порта 3000 на этом хосте как порт сервера RFTXServer
host.getAuthenticator().addValidToken("tester", "TestToken"); // добавление токена с именем tester и значением TestToken
host.server.start(); // запуск прослушивателя RFTXServer с помощью этого метода
initServer(int port)
перезапишет ранее созданный RFTXServer и может привести к непредвиденным исключениям, особенно если server уже начал прослушивание.Предполагается, что определён объект host: RFTXHost (обязательно):
host.initClient(); // инициализация объекта Client в объекте Host
host.getAuthenticator().setConnToken("TestToken"); // установка токена соединения для использования при подключении "TestToken"
host.client.connect("testserver.ts", 3000); // подключение клиента к testserver.ts через порт 3000
connect()
, первые две строки постоянно изменяют свойства объекта host. После установки токена соединения каждый раз при подключении будет использоваться последний установленный токен.client
в объекте host
.host.post(String peerName, String taskToken, String localFile, String remoteFile);
peerName
предоставляет имя хоста целевого объекта для определения цели.taskToken
является токеном этой задачи передачи.localFile
указывает на локальный файл, который будет отправлен.remoteFile
определяет путь и имя файла на удалённом компьютере.Например:
host.post("testServer", "taskToken000", "product/jar/rftx.jar", "receive/rftx-lib.jar")
host.get(String peerName, String taskToken, String localFile, String remoteFile);
peerName
предоставляет имя хоста источника для определения источника.taskToken
является токеном задачи получения.localFile
указывает файл назначения, расположенный локально.remoteFile
определяет путь и имя удалённого файла.Обратите внимание, что порядок локальных файлов и удалённых файлов одинаков в обоих методах. Пожалуйста, различайте исходные файлы и целевые файлы.
Пример:
host.get("testServer", "taskToken000", "product/jar/rftx.jar", "receive/rftx-lib.jar")
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )