StupidBeauty
Read times:5007Posted at: - no title specified

我存在:libexist,让局域网内的不同设备可以互相发现

1 概述

libexist,是一个跨平台的开发库,目的是让局域网内的手机、电脑等设备可以互相发现

目前支持以下平台/设备/语言:

  1. 1.安卓,Java;

  2. 2.GNU/Linux,C++;

  3. 3.GNU/Linux,C++ QT5

  4. 4.Ruby

  5. 5.Windows,C++ QT5

2 下载及安装

2.1 PC版

2.1.1 GNU/Linux

2.1.1.1 C++

2.1.1.1.1 OsoLinux/RPM

适用于OsoLinux及RPM系列发行的RPM安装包,可在这里下载:

https://sourceforge.net/projects/magicrpmshop/files/ExistCpp/ExistCpp-2019.1.23-1_Oso.x86_64.rpm/download

也可扫描下面的二维码以下载到妳的手机上,然后再传送到自己的电脑

下载完毕之后,使用rpm命令或yum来安装这个RPM包,就行了。

2.1.1.1.2 源代码

源代码压缩包,可在这里下载:

https://stupidbeauty.com/ArticleImages/1751/ExistCpp-2019.1.23.tar.gz

也可扫描下面的二维码以下载到手机上,然后再传送到自己的电脑

下载完毕之后,将得到一个名为“ExistCpp-2019.1.23.tar.gz”的gzip压缩包,将其解压之后,得到一个名为“ExistCpp-2019.1.23”的目录。在这个目录中,执行以下命令行命令即可编译安装完成:

qmake-qt5

gmake

gmake install

2.1.1.2 QT5

2.1.1.2.1 源代码

源代码压缩包,可在这里下载:

https://stupidbeauty.com/ArticleImages/1751/ExistQt-2022.9.24.tar.gz

也可扫描下面的二维码以下载到手机上,然后再传送到自己的电脑

下载完毕之后,将得到一个名为“ExistQt-2022.9.24.tar.gz”的gzip压缩包,将其解压之后,得到一个名为“ExistQt-2022.9.24”的目录。在这个目录中,执行以下命令行命令即可编译安装完成:

qmake-qt5

gmake

gmake install

2.2 安卓

安卓版libexist库不需要专门的下载步骤,在安卓开发项目中声明对libexist库的依赖即可:

allprojects {

repositories {

 //……

    maven { url "https://jitpack.io" }

 //……

}

}

dependencies

{

 //……

  implementation 'com.github.hxcan:existandroid:2022.7.34'

//……

}

2.3 Ruby版

使用gem即可安装Ruby版libexist库

gem install ExistRuby

3 使用

3.1 关键接口

以下说明libexist各个不同语言/平台版本的关键接口。

3.1.1 GNU/Linux,C++

3.1.1.1 发布服务

class ServicePublisher

{

public :

ServicePublisher (); //!<默认构造函数。

void publishService( string LanServiceName, quint16 LanServicePort, exist :: ServicePublishMessage :: ServiceProtocolType LanServiceProtocolType); //!<发布服务。

};

构造一个ServicePublisher对象,调用它的 publishService( string LanServiceName, quint16 LanServicePort, exist :: ServicePublishMessage :: ServiceProtocolType LanServiceProtocolType) 方法即可向局域网内其它设备发布出自己的服务。

3.1.2 Ruby

3.1.2.1 发布服务

class ExistRuby

# Publish a service to the LAN.

#

# Example:

#   >> existRuby=ExistRuby.new

#   >> existRuby.publishService("fp_serverPython", 10086, exist::ServicePublishMessage::ServiceProtocolType::GRPC)

#

# Arguments:

#   lanServiceName: (String)

#   lanServicePort: (int)

#   lanServiceProtocolType: (enum)

def publishService(lanServiceName, lanServicePort, lanServiceProtocolType)

#…...

end

end

构造一个ExistRuby对象,调用它的publishService(lanServiceName, lanServicePort, lanServiceProtocolType) 方法即可向局域网内其它设备发布出自己的服务。

3.2 示例

以下示例具体展示了各个不同语言/平台版本的用法。

3.2.1 GNU/Linux,C++

点击以下链接下载示例源代码:

https://bitbucket.org/hxcan/libexist/downloads/ExistCppExample-2018.8.11.tar.gz

或扫描以下二维码以下载到手机,然后传送到电脑:

编译运行起来之后,使用“C++ QT5示例”或“安卓扫描示例”都可发现局域网中一个名为“ ExistCppExample ”的服务。

3.2.2 C++ QT5

点击以下链接下载示例源代码:

https://stupidbeauty.com/ArticleImages/1751/ExistQtExample-2022.9.24.tar.gz

或扫描以下二维码以下载到手机,然后传送到电脑:

编译运行起来之后,即可发现局域网中一个名为“ ExistCppExample ”的服务,那是由“C++示例”发布出来的。

3.2.3 安卓,Java

3.2.3.1 发布示例

使用此示例可向局域网内发布一个名为“ExistAndroidPublishExample”的服务。

3.2.3.1.1 源代码

点击以下链接下载示例源代码:

https://stupidbeauty.com/ArticleImages/1751/ExistAndroidPublishExample-2022.9.24.tar.gz

或扫描以下二维码以下载到手机,然后传送到电脑:

编译运行起来之后,使用“C++ QT5示例”或“安卓扫描示例”都可发现局域网中一个名为“ Exist AndroidPublish Example ”的服务。

3.2.3.2 扫描示例

使用此示例可发现局域网中通过libexist发布出来的服务。

3.2.3.2.1 源代码

点击以下链接下载示例源代码:

https://stupidbeauty.com/ArticleImages/1751/ExistAndroidScanExample-2022.9.24.tar.gz

或扫描以下二维码以下载到手机,然后传送到电脑:

编译运行起来之后,可发现局域网中其它设备通过libexist所发布的服务。

3.2.3.2.2 APK安装包

点击以下链接下载示例应用:

https://stupidbeauty.com/ArticleImages/1751/ExistAndroidScanningExample-2022.9.24.e.apk

运行起来之后,可发现局域网中其它设备通过libexist所发布的服务。

3.2.4 Ruby

点击以下链接下载示例源代码:

https://stupidbeauty.com/ArticleImages/1751/ExistRubyExample-2018.8.11.tar.gz

或扫描以下二维码以下载到手机,然后传送到电脑:

运行起来之后,使用“C++ QT5示例”或“安卓扫描示例”都可发现局域网中一个名为“ Exist Ruby Example ”的服务。

4 文档

以下是各个不同版本的文档。

4.0.1 GNU/Linux,C++

点击以下链接下载文档:

https://stupidbeauty.com/ArticleImages/1751/ExistCppApiDocument-2018.8.11.tar.gz

或扫描以下二维码以下载到手机,然后传送到电脑:

解压之后,打开其中的index.html即是接口文档。

4.0.2 Ruby

点击以下链接在线查看文档:

https://www.rubydoc.info/gems/ExistRuby/2019.1.23

或扫描以下二维码在手机上查看文档:

5 已知用户

5.1 兰心输入法

兰心输入法 的电脑端和安卓端使用libexist互相发现。

5.2 自动无线安卓调试

自动无线安卓调试 的电脑端和安卓端使用libexist互相发现。

5.3 漂亮聊天

漂亮聊天 在各个平台上的版本,都使用libexist互相发现。

5.4 安卓即音箱

安卓 即音箱 的电脑端和安卓端使用libexist互相发现。

5.5 漂亮浏览器

漂亮浏览器 ,使用libexist来发现 调码扫描器 ,并发起二维码扫描请求。

5.6 调码扫描器

调码扫描器,使用libexist来发布自己的二维码扫描服务。

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands