# 示例代码

本文作者:[WTB]

# *python udp:

tupian

import socket
import threading
def recv_msg(udp_socket):
   #接受数据
   while True:
	   recv_data = udp_socket.recvfrom(1024)
	   print(recv_data)

def send_msg(udp_socket, dest_ip, dest_port):
  #发送数据
   while True:
	   send_data = input("请输入控制器的命令:")
	   udp_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port))

def main():
   #创建套接字
   udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

   #绑定本地信息
   udp_socket.bind(("", 10000))

   #输入控制器的ip
   dest_ip = input("请输入控制器的ip:")
   dest_port = int(input("请输入控制器的port:"))
   t_recv = threading.Thread(target=recv_msg, args=(udp_socket,))
   t_send = threading.Thread(target=send_msg, args=(udp_socket, dest_ip, dest_port))

   t_recv.start()
   t_send.start()
if __name__ == '__main__':
   main()

# *python telnet:

tupian

import logging
import telnetlib
import time
def main():
  host_ip = '192.168.1.77'
  telnet_client = TelnetClient()
  # 如果登录结果返加True,则执行命令,然后退出
  if telnet_client.login_host(host_ip):
     while True:           
        command = input("input:")
        if command == "exit":
            break
        else:           
            telnet_client.execute_some_command(command)
        #telnet_client.logout_host()
class TelnetClient():
  def __init__(self,):
    self.tn = telnetlib.Telnet()
  # 此函数实现telnet登录主机
  def login_host(self,host_ip):
     try:
        # self.tn = telnetlib.Telnet(host_ip,port=2701)
        self.tn.open(host_ip,port=2701)
     except:
        logging.warning('%s网络连接失败'%host_ip)
        return False
    
     time.sleep(1)
     # 获取登录结果
     # read_very_eager()获取到的是的是上次获取之后本次获取之前的所有输出
     command_result = self.tn.read_very_eager().decode('ascii')
     if 'Login incorrect' not in command_result:
        print('%s登录成功'%host_ip)
        return True
     else:
        logging.warning('%s登录失败'%host_ip)
        return False

  # 此函数实现执行传过来的命令,并输出其执行结果
  def execute_some_command(self,command):
      # 执行命令
   
     self.tn.write(command.encode('ascii')+b'\n')
     time.sleep(1)
     # 获取命令结果
     command_result = self.tn.read_very_eager().decode('ascii')
      print('命令执行结果:\n%s' % command_result)

if __name__ == '__main__':
  main()
2025 WTB物联网   |   豫ICP备19039103号-1