UDP套接字特点
(1)可能会出现数据丢失的情况
(2)传输简单,实现容易
(3)数据已数据包形式表达传输,容易丢包
(4)数据传输效率高
#!/usr/bin/python3# -*- Coding: utf-8 -*-# @Date : 2021/6/4# @name : ZhouZongXin"""要求从客户端可以循环的输入单词,服务端查询到单词,将单词解释发送给客户端,让客户端打印输出。数据库表words"""import pyMysqLclass MysqL(object): def __init__(self): self.db = pyMysqL.connect( host='localhost', user='root', password='root', database='test', port=3306, charset='utf8' ) self.cur = self.db.cursor() # 创建游标 # 关闭游标与数据库 def close(self): self.cur.close() self.db.close() def select_words(self, word): sql = "select mean from words where word=%s" self.cur.execute(sql, [word]) # 执行语句(SQL语句,传递参数) result = self.cur.fetchall() # 查询全部数据 if result: return result[0][0] else: return "没有查到"if __name__ == '__main__': MysqL = MysqL() print(MysqL.select_words('a'))
服务端代码#!/usr/bin/python3# -*- Coding: utf-8 -*-# @Date : 2021/6/4# @name : ZhouZongXin"""服务端"""from socket import *from python_全栈.网络.udp_select.udp_MysqL import MysqLclass Server(object): def __init__(self): self.select_sql = MysqL() def socket_server(self): ADDR = ('0.0.0.0', 8888) # 服务端ip地址 udp_socket = socket(AF_INET, SOCK_DGRAM) # 创建udp套接字,AF_INET--ipv4,SOCK_DGRAM--UDP套接字类型 udp_socket.bind(ADDR) # 绑定套接字 sql = self.select_sql while True: msg, addr = udp_socket.recvfrom(1024) # 接收超过最高1024个字节 if msg == '##': break udp_socket.sendto(bytes(sql.select_words(msg.decode()), enCoding='UTF-8'), addr) # 给对应客户端发送消息 sql.db.close() # 关闭数据库 udp_socket.close() # 关闭套接字if __name__ == '__main__': server = Server() server.socket_server()
客户端代码#!/usr/bin/python3# -*- Coding: utf-8 -*-# @Date : 2021/6/4# @name : ZhouZongXin"""客户端"""from socket import *class ClIEnt(object): @staticmethod def socket_clIEnt(): ADDR = ('192.168.27.117', 8888) # 套接字IP地址 udp_socket = socket(AF_INET, SOCK_DGRAM) # 创建套接字(IPV4,套接字类型) while True: msg = input("输入要查询的单词>>") if not msg: break udp_socket.sendto(msg.encode(), ADDR) # 向客户端发送请求 data, addr = udp_socket.recvfrom(1024) # 接受服务端返回 print("From server:", data.decode()) # 输出服务端返回结果clIEnt = ClIEnt()clIEnt.socket_clIEnt()
总结 以上是内存溢出为你收集整理的python--udp创建客户端与服务端连接,从数据库获取数据全部内容,希望文章能够帮你解决python--udp创建客户端与服务端连接,从数据库获取数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)