python3实现UDP协议的服务器和客户端
作者:AsuraDong 发布时间:2022-07-01 09:17:08
标签:python3,UDP,服务器,客户端
利用Python中的socket模块中的来实现UDP协议,这里写一个简单的服务器和客户端。为了说明网络编程中UDP的应用,这里就不写图形化了,在两台电脑上分别打开UDP的客户端和服务端就可以了。
UDP:用户数据报协议,是一个面向无连接的协议。采用该协议不需要两个应用程序先建立连接。UDP协议不提供差错恢复,不能提供数据重传,因此该协议传输数据安全性差。
客户端
python3只能收发二进制数据,需要显式转码
from socket import *
host = '192.168.48.128' # 这是客户端的电脑的ip
port = 13141 #接口选择大于10000的,避免冲突
bufsize = 1024 #定义缓冲大小
addr = (host,port) # 元祖形式
udpClient = socket(AF_INET,SOCK_DGRAM) #创建客户端
while True:
data = input('>>> ')
if not data:
break
data = data.encode(encoding="utf-8")
udpClient.sendto(data,addr) # 发送数据
data,addr = udpClient.recvfrom(bufsize) #接收数据和返回地址
print(data.decode(encoding="utf-8"),'from',addr)
udpClient.close()
服务器
同样需要显式转码
from socket import *
from time import ctime
host = '' #监听所有的ip
port = 13141 #接口必须一致
bufsize = 1024
addr = (host,port)
udpServer = socket(AF_INET,SOCK_DGRAM)
udpServer.bind(addr) #开始监听
while True:
print('Waiting for connection...')
data,addr = udpServer.recvfrom(bufsize) #接收数据和返回地址
#处理数据
data = data.decode(encoding='utf-8').upper()
data = "at %s :%s"%(ctime(),data)
udpServer.sendto(data.encode(encoding='utf-8'),addr)
#发送数据
print('...recevied from and return to :',addr)
udpServer.close()
来源:http://blog.csdn.net/asuradong/article/details/73194841


猜你喜欢
- 万恶的源泉:Fireboo的疑问(当然 lambda 本身写的就有问题):>>> filter( lambda x: x
- 目标在本章中,将学习使用kNN来构建基本的OCR应用程使用OpenCV自带的数字和字母数据集手写数字的OCR目标是构建一个可以读取手写数字的
- 本文为大家分享了pygame游戏之旅的第3篇,供大家参考,具体内容如下载入car图片(我自己画的),需要用到pygame.image模块,定
- TensorFlow提供了TFRecords的格式来统一存储数据,理论上,TFRecords可以存储任何形式的数据。TFRecords文件中
- 正在看的ORACLE教程是:自动备份Oracle数据库。
- 1.复制表结构及数据到新表CREATE TABLE 新表SELECT * FROM 旧表 2.只复制表结构到新表CREATE TABLE 新
- 如下所示:#! usr/bin/python#coding=utf-8 import numpy as npimport matplotli
- 问题你的程序获取了一个目录中的文件名列表,但是当它试着去打印文件名的时候程序崩溃, 出现了 UnicodeEncodeError 异常和一条
- python寻找主串中所有指定子串下标该函数可实现显示字符串中指定子串所有下标(首字下标)def subStrIndex(substr,st
- 窗口函数简单理解,就是对查询的结果多出一列,这一列可以是聚合值,也可以是排序值。开窗函数一般就是说的是over()函数,其窗口是由一个 OV
- 首先导入包含apriori算法的mlxtend库,pip install mlxtend调用apriori进行关联规则分析,具体代码如下,其
- Golang 性能基准测试Golang 中的性能基准测试是使用标准库 testing 来实现的,编写性能测试代码是很容易的:创建性能测试文件
- osql简单用法:用来将本地脚本执行,适合sql脚本比较大点的情况,执行起来比较方便osql -S serverIP -U sa -P 12
- →问题提出:我用dw做了一个下拉菜单,但是碰到form的列表项就跑到下面去了,请帮忙解决,先谢谢各位了!请看问题图示如下:→解决问题:由于层
- 一、概述Python Flask 是一个轻量级的 Web 框架,它提供了一个易于使用的 API 来创建 Web 应用程序。在 Flask 中
- 一、新建项目:SqlSugarDemo<ItemGroup> <PackageReference
- 在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码。代码段1:d
- 你知道SQL Server这么庞大的企业级数据库服务器产品是如何build出来的吗?这有些相关的数据:每个build 的大小在300GB左右
- 在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能。我喜欢用python实现,因为python提供了很多成熟的模块,
- 相关文章推荐:各种北京2008奥运会倒计时Flash2008北京奥运会倒计时js代码 全套北京2008奥运会倒计时屏保<!DOCTYP