EC机器人8058和8059端口使用

2025-01-22

1.  简介

在使用中二次开发中,出现不方便使用示教器查看机器人报警问题,以及运行日志,这时候就可以使用8058以及8059端口来获取.

端口区别

8058端口:日志类型为:Error,Warning,Info

8059端口:原始日志接口

2.  操作流程

下面是一篇关于如何操作和使用 8058 端口的文档。

8058 端口操作流程


概述

本章节介绍如何通过网络编程与 8058 端口进行通信。无论你使用的是哪种高级编程语言,基本步骤都是类似的。本文将以 Python 代码为例,并解释每一步的操作目的和实现方法。

操作步骤

1. 建立与服务器的连接


首先,我们需要创建一个 TCP 连接来连接到服务器的 8058 端口。以下是 Python 中的实现方法及其解释:

import socket


HOST = "172.16.11.31"  # 服务器IP地址

PORT = 8058            # 服务器端口号


try:

    # 创建一个TCP/IP套接字

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    s.settimeout(2)  # 设置超时时间为2秒

    s.connect((HOST, PORT))  # 连接到服务器

    print("已连接到服务器")

except socket.error as e:

    print(f"Socket错误: {e}")

    exit(1)

except Exception as e:

    print(f"其他错误: {e}")

    exit(1)



解释:

● 创建一个 TCP 套接字。

● 设置超时时间,避免连接过程长时间挂起。

● 尝试连接到指定的服务器和端口,如果连接失败,则捕获异常并输出错误信息。


2.  发送指令


一旦连接建立,就可以通过发送指令来获取服务器上的日志信息。在此例中,我们发送两条指令来获取日志信息:



try:
   # 发送指令以获取日志信息
   str1 = "Type=Info\n"
   s.send(str1.encode())  # 发送获取类型为Info的日志指令
   time.sleep(1)  # 等待1秒
   str2 = "all\n"
   s.send(str2.encode())  # 发送获取全部日志信息的指令


解释:

● Type=Info\n:请求类型为 "Info" 的日志信息。(若请求输入 Error 类型,则获取 Error 信息;若请求输入 Warning类型,则获取 Error 和 Warning 类型的日志信息;若请求输入 Info,则获取所有类型的日志信息)

● all\n:请求获取所有日志信息(输入 all,输入全部日志;输入数字,如 10,输出最后 10 行日志;输入 exit,退出连接)。

● 使用 encode() 方法将字符串转换为字节数据后发送。


3.  接收和处理数据


服务器会返回相应的日志数据,我们需要接收这些数据并进行处理:(注意:数据格式UTF-8)

timeout_count = 0

    max_timeout_count = 5  # 最大允许的超时次数


    while True:

        try:

            data = s.recv(128000)

            if not data:

                print("服务器关闭连接")

                break


            print(data.decode('utf-8', 'ignore'))

            timeout_count = 0  # 重置超时计数器

        except socket.timeout:

            timeout_count += 1

            print(f"接收数据超时 ({timeout_count}/{max_timeout_count})")

            if timeout_count >= max_timeout_count:

                print("超时次数过多,关闭连接")

                break

        except socket.error as e:

            print(f"Socket错误: {e}")

            break

        except Exception as e:

            print(f"抛出异常: {e}")

            break


解释:

● 使用 recv() 方法接收数据。此方法一次最多接收 128000 字节的数据。

● 如果接收到的数据为空,则说明服务器关闭了连接。

● 将接收到的字节数据解码为字符串并打印出来。

● 处理接收过程中可能出现的各种异常。


4. 关闭连接

操作完成后,关闭与服务器的连接:


finally:
   s.close()
   print("连接已关闭")


解释:


● 无论操作是否成功,最终都需要关闭套接字连接,以释放系统资源。


python全部代码


import socket

import time


HOST = "172.16.11.31"

PORT = 8058


try:

        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)               

    s.settimeout(2)

    s.connect((HOST, PORT))

    print("已连接到服务器")

except socket.error as e:

    print(f"Socket错误: {e}")

    exit(1)

except Exception as e:

    print(f"其他错误: {e}")

    exit(1)


try:

    str1 = "Type=Info\n"

    s.send(str1.encode())

    time.sleep(1)

    str2 = "all\n"

    s.send(str2.encode())


    timeout_count = 0

    max_timeout_count = 5  # 最大允许的超时次数


    while True:

        try:

            data = s.recv(128000)

            if not data:

                print("服务器关闭连接")

                break


            print(data.decode('utf-8', 'ignore'))

            timeout_count = 0  # 重置超时计数器

        except socket.timeout:

            timeout_count += 1

  print(f"接收数据超时 ({timeout_count}/{max_timeout_count})")

            if timeout_count >= max_timeout_count:

                print("超时次数过多,关闭连接")

                break

        except socket.error as e:

            print(f"Socket错误: {e}")

            break

        except Exception as e:

            print(f"抛出异常: {e}")

            break

finally:

    s.close()

    print("连接已关闭")



总结

通过本文档的步骤和示例代码,你可以使用任何高级编程语言与服务器的 8058 端口进行通信。关键步骤包括:

1.  建立 TCP 连接。

2.  发送指令请求。

3.  接收并处理服务器返回的数据。

4.  关闭连接。

如果在操作过程中遇到任何问题,请检查网络连接、服务器状态,以及确保你的编解码方式与服务器一致。

8059端口操作流程

概述

本章节详细说明了如何通过 8059 端口与服务器通信,获取原始日志。用户可以通过发送不同的命令来获取全部日志、指定行数的日志或退出连接。示例代码使用 Python 编写.

通信流程

1.  建立连接:通过 TCP 协议连接到指定服务器和端口。

2.  发送请求:发送请求字符串以获取日志。

3.  接收数据:接收服务器返回的日志数据并保存到文件。

4.  关闭连接:完成操作后关闭连接。

操作说明

● 获取全部日志:连接后,输入 all,服务器会返回全部日志。

● 获取指定行数日志:连接后,输入数字,如 10,服务器会返回最后 10 行日志。

● 退出连接:连接后,输入 exit,断开与服务器的连接。

Python 示例代码


import socket


HOST = "192.168.1.205"

PORT = 8059


try:

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    s.settimeout(2)

    s.connect((HOST, PORT))

    print("已连接到服务器")

except socket.error as e:

    print(f"Socket错误: {e}")

    exit(1)

except Exception as e:

    print(f"其他错误: {e}")

    exit(1)


try:

    # 新建文件或清空文件内容

    with open(r'D:\205\log\err_log_1.md', 'w') as file:

        file.close()


    # 获取最近10条日志条目

    str1 = "10\n"

    s.send(str1.encode())


    while True:

        try:

            data = s.recv(1024)

            if not data:

                print("服务器关闭连接")

                break


            with open(r'D:\205\log\err_log_1.md', 'a+') as f:

                f.write(data.decode('utf-8'))

            print(data.decode('utf-8'))

        except socket.timeout:

            print("接收数据超时")

            break

        except socket.error as e:

            print(f"Socket错误: {e}")

            break

        except Exception as e:

            print(f"抛出异常: {e}")

            break

finally:

    s.close()

    print("连接已关闭")




注意事项

1.  网络连接稳定性:

a.  确保网络连接稳定,避免由于网络波动导致的连接中断或数据丢失。

2.  超时处理:

a.  设置合理的超时时间,防止程序长时间等待而挂起。

3.  错误处理:

a.  在连接、发送和接收数据时,做好异常处理,并记录错误日志。

4.  数据完整性:

a.  在发送和接收数据时,确保数据的完整性和正确性。必要时进行数据校验。

5.  资源管理:

a.  在程序结束或出现异常时,确保关闭所有打开的连接和文件,以释放系统资源。

6.  安全性:

a.  避免发送敏感信息,或使用加密方法保护数据传输的安全性。

7.  日志记录:

a.  在操作过程中记录关键日志,以便在出现问题时能够追踪和排查。




download-669.svg comicon14.svg

电话咨询

download-397.svg comicon15.svg

免费试用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

准备好突破增长瓶颈,开启智能制造了吗?
了解我们的机器人如何帮助您的业务增长
欢迎下载艾利特机器人资料

我已阅读并同意艾利特《隐私政策》《法律声明》

我已知晓并同意艾利特通过电子邮件发送相关资料

提交