实现简单的udp请求服务模式
udp 是一种简单传输协议,实现简单,占用系统资源少
运行结果
客户端
服务端
服务端代码
# _*_ coding: utf-8 _*_import timefrom socket import *'''创建简单的udp服务端'''# 创建套接字soc = socket(AF_INET, SOCK_DGRAM)# 设置本地地址local_addr = ("", 50000)# 绑定本地地址soc.bind(local_addr)# 进入等待服务模式while True: # 一次接受的最大字节数为3000 rec_addr, rec_txt = soc.recvfrom(3000) # 打印接收的结果 print("%s>>%s"%(rec_addr, rec_txt)) # 为避免cpu占用过高,使用延时策略 time.sleep(0.5)
客户端代码
# _*_ coding: utf-8 _*_from socket import *import time# 设置服务端和客户端ip和端口信息local_addr = ("", 51000) dest_addr = ("", 50000)while True: # 创建端口 soc = socket(AF_INET, SOCK_DGRAM) # 绑定端口 soc.bind(local_addr) mes = input("请输入需要发送的信息:") # 发送套接字 soc.sendto(mes.encode("utf-8"), dest_addr) # 延时策略 time.sleep(0.1) # 关闭套接字 soc.close()
小结
向服务端发送消息5个要点:
客户端ip
客户端端口
服务端ip
服务端端口
需要发送的信息
容易出错的点:
使用sendto或recvfrom函数的时候,接收到的第一个参数是消息第二个参数是ip和端口信息
window decode参数为gbk(国标码,windows的编码问题一直是个问题 -_- )
编写技巧
先把5要点(客户端ip, 客户端端口, 服务端ip, 服务端端口, 需要发送的消息)写好,再创建套接字
快速创建udp套接字写法:
from socket import *# 创建udp套接字,命名为socsoc = socket(AF_INET, SOCK_DGRSM)
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦