Python教程

python--udp创建客户端与服务端连接,从数据库获取数据

本文主要是介绍python--udp创建客户端与服务端连接,从数据库获取数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

UDP套接字特点
(1)可能会出现数据丢失的情况
(2)传输简单,实现容易
(3)数据已数据包形式表达传输,容易丢包
(4)数据传输效率高

数据库代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Date  : 2021/6/4
# @Name  : ZhouZongXin

"""
要求从客户端可以循环的输入单词,服务端查询到单词,将单词解释发送给客户端
,让客户端打印输出。
数据库表words
"""
import pymysql


class 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 Mysql


class 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创建客户端与服务端连接,从数据库获取数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!