python socket sendto sendall_网络通信 Python Socket UDP Select

本文通过一个示例介绍了如何使用Python的socket和select模块实现一个UDP Server,展示了一个简单的UDP通信过程,强调了UDP在物联网中的应用价值,并提供了客户端示例和相关物联网图书推荐。
摘要由CSDN通过智能技术生成

前言

工作中遇到各种各样的网络通信。有MQTT和CoAP这样的物联网应用层协议,也有各种自定义的TCP或UDP协议。使用各种不同的计算机语言和框架开发网络通信,例如Java的Netty框架,C语言原始socket,Python Socket。各有各的使用场景,难易程度相差巨大。Netty上手困难,C语言编写复杂,Python Socket上手容易。

长久以来,UDP通信一直被误解为一种不可靠的通信手段,但是UDP简单使用,特别适合物联网终端。UDP没有三次握手和四次挥手,换个角度来说节约了网络流量,降低了设备的功耗。UDP协议也是物联网应用层协议CoAP、LwM2M的传输层协议,也有消息说HTTP 3.0协议将使用UDP作为传输层协议

示例简述

本例通过select实现一个UDP Server,一般来说select相比其他recv和send等常用函数难用不少,网上也很难找到合适的示例,特别是UDP Select示例。

开发环境 Windows PyCharm社区版 Python3.7

服务器示例

udp-server-select.py

import select

import socket

import binascii

HOST = ''

PORT = 50018

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

server_fd.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

server_fd.bind((HOST, PORT))</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值