python udp客户端与服务端使用相同的端口_简易UDP服务器和客户端通信代码

UDP是无连接的socket通信,UDP通信不需要在交换数据之前,进行像TCP那样的三次握手。UDP通信很直接,socket创建了之后,直接就发数据,也不管对方能不能收到。看起来好像UDP通信一无是处,但是别忘了,DNS服务就是用UDP的53号端口。

这种简单的,无连接的,没有接收确认的UDP通信,也有它适合的应用场景。比如发送语音和视频这类重传无意义的流媒体数据。又比如调试单板,电脑直连一块板子,这个时候就没有必要使用TCP,TFTP就是属于这类。

本文介绍一组UDP服务器和客户端的代码,实际测试通过,并说明服务器的监听地址这个重要细节。

UDP服务器代码

用Python来写UDP服务器代码,非常简单,如下:

import socket

address = ('192.168.1.100', 12345) # 0.0.0.0 may be better

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.bind(address)

while True:

data, addr = s.recvfrom(2048)

print("received:", data.decode(), "from", addr)

# use s.sendto() and addr to send data back

s.close()

我们只需要引入socket模块,创建UDP socket对象s,然后bind绑定地址address。address是一个IP和Port

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值