简单易懂的udp

简介: 实现简单的udp请求服务模式udp 是一种简单传输协议,实现简单,占用系统资源少运行结果客户端服务端服务端代码# _*_ coding: utf-8 _*_import timefrom socket i...

实现简单的udp请求服务模式

udp 是一种简单传输协议,实现简单,占用系统资源少


运行结果

客户端
服务端

服务端代码

# _*_ coding: utf-8 _*_

import time
from 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套接字,命名为soc
soc = socket(AF_INET, SOCK_DGRSM)
目录
相关文章
|
16天前
|
存储 Python
Python网络编程基础(Socket编程)UDP客户端编程
【4月更文挑战第9天】在UDP通信中,客户端负责发送数据到服务器,并接收来自服务器的响应。与服务器不同,客户端通常不需要绑定到特定的地址和端口,因为它可以临时使用任何可用的端口来发送数据。下面,我们将详细讲解UDP客户端编程的基本步骤。
|
8月前
|
网络协议 程序员 Go
GO语言使用之网络编程(TCP编程)
GO语言使用之网络编程(TCP编程)
65 0
|
4月前
|
Web App开发 数据处理
ZLMediaKit源码学习——UDP
ZLMediaKit源码学习——UDP
|
存储 网络协议 算法
一文搞懂Go语言网络编程【tcp、udp】
一文搞懂Go语言网络编程【tcp、udp】
297 0
一文搞懂Go语言网络编程【tcp、udp】
|
网络协议 Java API
Java实现网络通信(TCP程序设计)
Java实现网络通信(TCP程序设计)
Java实现网络通信(TCP程序设计)
|
网络协议
|
网络协议 数据挖掘 网络架构
第100天:UDP 编程
第100天:UDP 编程
127 0
第100天:UDP 编程
|
存储 网络协议 网络架构
网络编程运输层TCP/UDP面试知识点(上)
网络编程运输层TCP/UDP面试知识点
119 0
网络编程运输层TCP/UDP面试知识点(上)
|
缓存 编解码 网络协议
网络编程运输层TCP/UDP面试知识点(中)
网络编程运输层TCP/UDP面试知识点
145 0
网络编程运输层TCP/UDP面试知识点(中)