ND9meng 2023-09-21 15:35 采纳率: 0%
浏览 29

Android端如何实现LLDP协议

我想通过网线,将PDA设备和PC(服务器)连接,将PDA设备作为上位机,用Android studio写一个程序,可以监听PC发出的LLDP协议报文,获取到PC(服务器)的Mac地址和序列号,想问问带佬们这可以实现吗

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-21 18:09
    关注

    【以下回答由 GPT 生成】

    专家回答:

    针对 Android 实现 LLDP 协议的功能,可以按照以下步骤进行:

    1. 添加相关依赖:首先在你的 Android 项目中添加相关依赖,以便能够使用 LLDP 协议的库。你可以通过在 build.gradle 文件中的 dependencies 部分添加对应的库来实现。具体可以根据你所选择的 LLDP 库来添加对应的依赖。

    2. 创建 LLDPListener:创建一个 LLDPListener 类,用于监听并处理从 PC 发出的 LLDP 协议报文。可以通过实现 Runnable 接口或者使用 AsyncTask 类来实现后台监听。

    在 LLDPListener 中,你可以使用 Socket 来监听来自 PC 的报文,并解析报文中的信息。具体可以参考以下示例代码:

    public class LLDPListener implements Runnable {
        private static final int LISTEN_PORT = 5678; // 指定监听的端口号
    
        @Override
        public void run() {
            try {
                DatagramSocket socket = new DatagramSocket(LISTEN_PORT);
                byte[] buffer = new byte[1024];
                DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
    
                while (true) {
                    socket.receive(packet);
                    String message = new String(packet.getData(), 0, packet.getLength());
                    // 解析报文中的信息,并获取 Mac 地址和序列号
                    String macAddress = getMacAddressFromLLDP(message);
                    String serialNumber = getSerialNumberFromLLDP(message);
    
                    // 在这里可以做进一步的处理,比如展示获取到的信息
                }
    
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        // 解析报文中的 Mac 地址
        private String getMacAddressFromLLDP(String message) {
            // 解析逻辑
        }
    
        // 解析报文中的序列号
        private String getSerialNumberFromLLDP(String message) {
            // 解析逻辑
        }
    }
    
    1. 启动 LLDPListener:在你的 Android 应用中的适当位置启动 LLDPListener。可以在 Activity 的 onCreate 方法中调用 startLLDPListener 方法来启动监听。
    private void startLLDPListener() {
        Thread thread = new Thread(new LLDPListener());
        thread.start();
    }
    
    1. 权限和相关配置:为了能够正确监听和接收报文,需要在 AndroidManifest.xml 文件中添加相应的权限和网络配置。

    在 uses-permission 标签中添加以下权限:

    <uses-permission android:name="android.permission.INTERNET" />
    

    在 application 标签中添加以下配置:

    <application
        ...
        android:usesCleartextTraffic="true">
        ...
    </application>
    

    这样就可以在 Android 设备上监听 PC 发出的 LLDP 协议报文,并获取其中的 Mac 地址和序列号了。

    需要注意的是,LLDP 协议的报文格式比较复杂,你可能需要进一步研究和了解 LLDP 协议的具体实现细节,并根据实际情况对解析逻辑进行相应的调整和优化。

    希望以上解答能够帮助到你,如果有任何问题,请随时提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月21日