1  服务器端

代码:

'''GUI MAIN'''
import tkinter
from tkinter import END, messagebox
import os
import time
import threading
import socketfileKey=""
filePath=""
#server thread
def serverThread():"""UDP服务器线程函数"""messagebox.showinfo("notice","thread is beginning")BUFSIZE = 1024ip_port = ('127.0.0.1', 9999)server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # udp协议server.bind(ip_port)lb.insert("end","begin")while True:data,client_addr = server.recvfrom(BUFSIZE)lb.insert(END,time.strftime("(%H:%M:%S)")+str(client_addr)+":"+str(data)[1:])  lb.see(lb.size())      server.sendto(b'success',client_addr)server.close()messagebox.showinfo("tt","thread is over")
#server over
def BeginUDPserver():  """启动线程"""     exe_thread= threading.Thread(target=serverThread)exe_thread.setDaemon(True)exe_thread.start()    b.configure(state=tkinter.DISABLED)    win=tkinter.Tk()
win.option_add("*Font", "宋体")
win.title("UDP服务器")
win.geometry("800x600")#--------第1行---------------------------------
Lab=tkinter.Label(win,text="信息(UDP服务器端口为9999)")
Lab.grid(row=1,column=1)
#
b=tkinter.Button(win,text="启动服务",command=BeginUDPserver)
b.grid(row=1,column=2)
#---------第2行--------------------------------
sc = tkinter.Scrollbar(win)
sc.grid(row=2,column=2)lb=tkinter.Listbox(win,width=80,height=28,selectmode="single",yscrollcommand=sc.set)
lb.grid(row=2,column=1)sc.config(command=lb.yview)win.mainloop()

2  UDP客户端

代码

'''GUI MAIN'''
import tkinter
from tkinter import messagebox
from tkinter import ttk
import time
import  threading
import socket#按钮消息
def Submit():"""UDP客户端发送数据"""MyIP=ServerIP.get()MyPORT=ServerPort.get()msg =entry.get()if len(MyIP.strip())<=0:messagebox.showerror("提醒","服务器IP不能为空")return if len(MyPORT.strip())<=0:messagebox.showerror("提醒","服务器端口不能为空")return if len(msg)<=0:messagebox.showerror("提醒","发送内容不能为空")return BUFSIZE = 1024client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)   ip_port = (MyIP, int(MyPORT))client.sendto(msg.encode('utf-8'),ip_port)data,server_addr = client.recvfrom(BUFSIZE)entry2.delete(0,"end")entry2.insert("end",str(data)[1:])#print('客户端recvfrom ',data,server_addr)client.close()    win=tkinter.Tk()
win.option_add("*Font", "宋体")
win.title("UDP客户端")
win.geometry("800x600")#--------第1行----------------------------
Lab1=tkinter.Label(win,text="服务器IP")
Lab1.grid(row=1,column=1)
#
ServerIP=tkinter.Entry(width=50)
ServerIP.grid(row=1,column=2)
ServerIP.insert(0,"127.0.0.1")#--------第2行----------------------------
Lab2=tkinter.Label(win,text="服务器PORT")
Lab2.grid(row=2,column=1)
#
ServerPort=tkinter.Entry(width=50)
ServerPort.grid(row=2,column=2)
ServerPort.insert(0,"9999")#---------第3行----------------------------
Lab3=tkinter.Label(win,text="发送内容")
Lab3.grid(row=3,column=1)
#
entry=tkinter.Entry(width=50)
entry.grid(row=3,column=2)
#
btsearch=tkinter.Button(win,text="发送数据",command=Submit)
btsearch.grid(row=3,column=3)
#----------第4行---------------------------
Lab4=tkinter.Label(win,text="反馈信息")
Lab4.grid(row=4,column=1)
#
entry2=tkinter.Entry(width=50)
entry2.grid(row=4,column=2)win.mainloop()

3效果图

       

UDP服务器和客户端相关推荐

  1. Python核心编程(第3版)第2章网络编程中关于tcp/udp服务器和客户端实现代码的运行出错的修正

    在Python核心编程(第3版)第2章网络编程中, 关于tcp/udp服务器和客户端实现代码的运行会出现 ['str' does not support the buffer interface]之类 ...

  2. 【Java 网络编程】UDP 服务器 与 客户端持续交互 案例

    文章目录 I UDP 交互原理 II UDP 服务器端代码示例 III UDP 客户端代码示例 IV 服务器 客户端 运行结果 I UDP 交互原理 1. UDP 单播传输流程 : A 给 B 发送数 ...

  3. 【python网络编程】创建TCP/UDP服务器进行客户端/服务器间通信

    客户端/服务器网络编程介绍 套接字:通信端点 实例:客户端发送数据,接收服务器返回的时间戳 用Python 编写FTP 客户端程序 客户端/服务器网络编程介绍 软件服务器也运行在一块硬件之上,但是没有 ...

  4. c#基于socket的UDP服务器和客户端实例

    基于Udp协议是无连接模式通讯,占用资源少,响应速度快,延时低.至于可靠性,可通过应用层的控制来满足.(不可靠连接) 使用Udp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) ...

  5. TCP与UDP服务器和客户端的搭建

    udp服务器 #include <stdio.h> #include <string.h> #include <sys/types.h> #include < ...

  6. UDP服务器判断客户端是否掉线

    client.cpp #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stdlib.h> #includ ...

  7. C语言实现UDP服务器,客户端

    客户端 #include<stdio.h> #include "unistd.h" #include "sys/socket.h" #include ...

  8. java udp 服务器_Java UDP 服务器与客户端的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package UDP_Client; import java.io.BufferedReader; import java.io.IOException ...

  9. liunx中udp服务器与客户端创建

最新文章

  1. 【OpenCV 4开发详解】分割图像——分水岭法
  2. 刚刚,旷视开源深度学习框架「天元」:Brain++内核,研发和落地都在用;孙剑:COCO三连冠背后的秘密武器...
  3. Spring 更好地处理 Struts 动作
  4. 2022-02-07
  5. think in java - 第四章 学习笔记
  6. 算法基础知识(考试复习)
  7. linux服务器文件名称乱码,linux中文文件名乱码怎么解决?
  8. sql server注入_SQL注入:SQL Server中的介绍和预防方法
  9. [看过不再忘]详细解析chmod修改文件权限
  10. MySQL8.0下载及安装教程
  11. 终端仿真程序-SecureCRT 绿色版提供下载
  12. 如何用python抓取qq音乐_手把手教你使用Python抓取QQ音乐数据
  13. [计算机毕业设计]元学习方法的小样本图像分类算法
  14. SAP UI5 应用开发教程之七十九 - 采用测试驱动开发理念(Test Driven Development)进行 SAP UI5 应用的功能开发(一)的试读版
  15. 支持华为鸿蒙2.0的手机型号是,华为鸿蒙2.0系统支持的手机型号 华为鸿蒙2.0系统详解...
  16. 净现值、折现率、内部收益率、投资利润
  17. 运行的程序总是莫名被 Killed
  18. 会当凌绝顶-----盘赔之我见(四)
  19. MFC封装功能成动态库相关问题汇总记录
  20. 经验分享:使用Python3处理excel-案例1

热门文章

  1. 用库文件操作EXCEL表格练习1
  2. 色选机和筛选机的区别?
  3. 基于python opencv人脸识别的员工考勤系统
  4. RTSP回放时如何通过RTP的timestamp计算npt时间
  5. 解读RF放大器规格:输出电压/电流和1dB压缩点
  6. 3dsMax必须拥有的15个超牛插件及RayFire3D爆炸碎裂效果下载
  7. .mdf和.ldf数据库文件导入到SQL Server数据库
  8. 核电站仪控系统的测试系统ETest
  9. 鼠标连点器同时点多个位置_一台电脑登录多个微信,简单,按住ENTER,鼠标快速点,扫描OK...
  10. python2.4无线模块_用Python实现喇叭天线设计小工具(二)