想着自己做一个上位机,用labview的话还要装软件和驱动,用python装一个解释器就ok了比较省事,这个只是个dome!刚学python三个小时!若有错误请见谅,请指导,谢谢!代码如下!
import time
from socket import *
from threading import Thread
from tkinter import *  # 导入tkinter文件库
from tkinter import Frame  # 库文件入口# UdpSocket = None
AddrIP = '192.168.0.10'
AddrPort = 50000# ------------------------------ Send() ----------------------------- #
def SendData():while True:Data = "这是UDP发送数据!"UdpSocket.sendto(Data.encode('gb2312'), (AddrIP, AddrPort))# print(AddrIP, AddrPort)time.sleep(1)# ------------------------------ Recv() ----------------------------- #
def RecvfromData():while True:global text1TempData = UdpSocket.recvfrom(1024)# cur = datetime.datetime.now()  # 获取当前系统时间print("从[%s:%d]接收到了:%s" % (TempData[1][0], TempData[1][1], TempData[0].decode("GB2312")))text1.insert(END, TempData)# text1.insert(END, cur)text1.insert(END, "\n")  # INSERT索引表示插入光标当前的位置text1.see(END)  # 跟随Y轴滚动轴向下time.sleep(0.1)# ------------------------------ main() ----------------------------- #
def main():init_window = Tk()init_window.title('UDP收发检测-下位机控制')  # 标题init_window.geometry("730x400")  # UI尺寸 长 * 宽frame_root = Frame(init_window)frame_left: Frame = Frame(frame_root)frame_right = Frame(frame_root)frame5 = Frame(frame_root)frame5.pack(side=TOP)frame6 = Frame(frame_root)frame6.pack(side=TOP)global text1, text2# ------------------------------ 文本设置() ----------------------------- #text1 = Text(frame5, width=100, height=10, bg='Pink')  # 边框颜色text1.grid(column=0, row=0)s1 = Scrollbar(text1)s1.pack(side=RIGHT, fill=Y)text1 = Text(text1, yscrollcommand=s1.set, wrap='none', width=100, height=10, bg='LightSteelBlue',font=("华文宋体", 10))text1.pack(expand=YES, fill=BOTH)s1.config(command=text1.yview)text2 = Text(frame6, width=100, height=10, bg='Pink')  # 边框颜色text2.grid(column=0, row=0)s2 = Scrollbar(text2)s2.pack(side=RIGHT, fill=Y)text2 = Text(text2, yscrollcommand=s2.set, wrap='none', width=100, height=10, bg='LightSteelBlue',font=("华文宋体", 10))text2.pack(expand=YES, fill=BOTH)s2.config(command=text2.yview)# ------------------------------ key() ----------------------------- #button2 = Button(frame6, text="发送", width=14, height=1, bg='red', activebackground="SlateGray",justify="left")  # 按键2(发送按钮)属性button2.bind("<Button-1>", lambda event:UdpSocket.sendto(text2.get("0.0", "end").encode("GB2312"), (AddrIP, AddrPort)))  # 给按键2绑定串口发送功能button2.grid(column=0, row=1, sticky=E)  # sticky=E 靠右放置button3 = Button(frame6, text="自定义", width=14, height=1, bg='green', activebackground="SlateGray",justify="left")  # 按键2(发送按钮)属性button3.bind("<Button-1>", lambda event:UdpSocket.sendto("自定义的命令!".encode("GB2312"), (AddrIP, AddrPort)))  # 给按键2绑定串口发送功能button3.grid(column=0, row=2, sticky=E)  # column列数  row行数   sticky=E 靠右放置button3 = Button(frame6, text="清除接收", width=14, height=1, bg='blue', activebackground="SlateGray",justify="left")  # 按键2(发送按钮)属性button3.bind("<Button-1>", lambda event:text1.delete('1.0', 'end'))  # 给按键2绑定串口发送功能button3.grid(column=0, row=3, sticky=E)  # sticky=E 靠右放置button4 = Button(frame6, text="清除发送", width=14, height=1, bg='yellow', activebackground="SlateGray",justify="left")  # 按键2(发送按钮)属性button4.bind("<Button-1>", lambda event:text2.delete('1.0', 'end'))  # 给按键2绑定串口发送功能button4.grid(column=0, row=4, sticky=E)  # sticky=E 靠右放置global UdpSocket  # 全局变量global TempData  # 全局变量# ------------------------------ UDP配置() ----------------------------- #UdpSocket = socket(AF_INET, SOCK_DGRAM)UdpSocket.bind(('', 7788))ts = Thread(target=SendData)tr = Thread(target=RecvfromData)ts.start()tr.start()frame_left.pack(side=LEFT)frame_right.pack(side=RIGHT)frame_root.pack()init_window.mainloop()if __name__ == "__main__":main()# ------------------------------ END() ----------------------------- #
# 运行PYTHON代码的这个电脑的IP是对方电脑的远程主机192.168.0.121 端口7788 对应:UdpSocket.bind(('', 7788))
# AddrIP = '192.168.0.10' AddrPort = 50000 为对方电脑的本地主机地址和本地主机端口
# label.grid(row=0, column=2, rowspan=2, columnspan=2,sticky = W + E + N + S, padx = 5, pady = 5)  # 合并两行,两列,居中,四周外延5个长度

Python的UDP通讯(收发一体、多线程)相关推荐

  1. Python之UDP通讯简单例子

    udp_send_service.py import socketudpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) bindAd ...

  2. Python中UDP/TCP通讯简单案例

    python使用udp协议要通过socket技术: 1.引包 2.创建流对象(ipv4, udp) 3.发送(二进制字符串, 元组ip和端口) 4.关闭流对象 socket: 译为:套接字/流对象 网 ...

  3. Python的GIL是什么鬼,多线程性能究竟如何

    2019独角兽企业重金招聘Python工程师标准>>> #Python的GIL是什么鬼,多线程性能究竟如何 前言:博主在刚接触Python的时候时常听到GIL这个词,并且发现这个词经 ...

  4. C#UDP通讯UdpClient

    目录(?)[+] 遇到如下两个问题 远程主机强迫关闭了一个现有的连接的错误 [html] view plaincopy print? class UdpClientClass { /// <su ...

  5. python 串口_如何使用Python开发串口通讯上位机(一)

    用Python开发串口通讯型上位机,其实并非最优解,本系列更新只为个人学习与总结.如果有C语言底子,嵌入式层面的上位机开发,C++ Builder,C#才是更加好用的利器. 1 什么是上位机 从事过嵌 ...

  6. UDP通讯之字节流与protobuf转换(C++版)

    UDP通讯之字节流与protobuf转换(C++版) 说明 工程内容 VS2017工程介绍 VS2017工程基本设置 数据结构体 UDP服务端server与客户端client类的封装 初始化IP与Po ...

  7. Java UDP通讯的简单实现

    UDP协议: 基于TCP协议可以建立稳定连接的点对点的通信.这种通信方式实时.快速.安全性高,但是很占用系统的资源. 在网络传输方式上,还有另一种基于UDP协议的通信方式,称为数据报通信方式.在这种方 ...

  8. android手机版tcp或者udp通讯测试工具,可以用于工业设备或者系统开发时间测试tcp或是udp连接通讯是否正常工作

    TUtool 介绍 由于工作需要一款安卓的tcp udp测试工具,而市场里没有或者不好用,或者都是广告,现在个人开发者又不让发布应用了,小巧好用不收集用户信息的不收费没有广告的小工具只能自己用,哈哈. ...

  9. FPGA----ZCU106与RTDs的udp数据收发实验

    1.硕士即将毕业,准备继续读博喽,欢迎大家报考NEEPU. 2.实验目标:依据RTDs设备的GTNET SKT网络协议,完成ZCU106 PS侧与RTDs的HIL实验. 3.实验任务:①TRDs发送数 ...

最新文章

  1. Ruby开发环境配置
  2. IMOAutocompletionViewController
  3. 第三篇——第二部分——第六文 监控SQL Server镜像
  4. 让UITableView的section header view不悬停的方法
  5. 帆软报表(finereport)图表钻取详细类别 当前页对话框展示
  6. 【TL】【编码】瞬间移动-百度之星初赛(Astar Round2B)1003-2016.05.22
  7. 【Spring】Spring 关于 Redis 的序列化器
  8. 布谷鸟算法(C++实现)
  9. IEEE1588 ( PTP ) 协议简介
  10. Linux服务器被黑用作矿机的排查过程 ld-linux-x86-64 占用CPU过高
  11. python爬取网易云课堂python课程
  12. [投资笔记]2016-11-25日
  13. 使用.NET Reflector
  14. android手机连接esp32视频
  15. 图形化初始化达梦数据库
  16. 新年新故事 | Nice 兔 Meet U
  17. 【每日新闻】诺基亚展示未来工厂:5G自动化机器人与人类和谐共处
  18. PCIE,USB传输速率和带宽
  19. 案例分析警示安全隐患:免费WiFi购物卷走账户余额
  20. android开发百度地图定位到几内亚湾问题的解决

热门文章

  1. 企业必会技能Docker容器、国内镜像源、web界面管理、配置镜像仓库、镜像加速器、超细详解
  2. 有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300};创建两个抽奖箱(线程)...
  3. 高速采集方案使利用UHF局部放电检测技术监控电网成为现实
  4. spring的延迟加载介绍
  5. 未来智能汽车数字化转型之路必不可少强大的高级排产软件
  6. 支付宝h5支付(java版)
  7. 大讲台谈Hive常见的问题及解决方案(二)
  8. 今天比较烦,比较烦,比较烦,比较烦,比较烦......
  9. 跨域—同源策略(经典前端面试题)
  10. 智慧路灯杆网关厂家有哪些