ITPub博客

首页 > IT职业 > IT图书 > 简单易懂的udp

简单易懂的udp

IT图书 作者:ghost_hand 时间:2021-09-09 09:30:40 0 删除 编辑

实现简单的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)

         



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1059/viewspace-2804109/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    81
  • 访问量
    444