python实现一个简单的udp通信的示例代码


Posted in Python onFebruary 01, 2019

什么是 Socket?

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

python创建套接字

socket.socket([family[, type[, proto]]])
参数解析:
family: AF_UNIX(适用跨机通信) 或 AF_INET(IPv4)(适用本机通信)
type: 套接字类型,可以根据是面向连接的还是非连接分为 SOCK_STREAM(TCP) 或 SOCK_DGRAM(UDP)
protocol: 一般不填默认为0.

客户端代码:udp_client.py

第一步:导入socket模块和创建套接字

import socket
u_client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

第二步:开始通信

# s.getsockname()  返回套接字自己的地址。
print("%s:%s 开始工作" %u_client.getsockname())

while True:
  # 发送数据
  data = input("input>>>")
  u_client.sendto(data.encode('utf-8'), ("localhost", 8887)) 


  # 退出系统操作
  if data == 'exit':
    break

  # 接收数据
  data, addr = u_client.recvfrom(1024)
  print("客户端接收信息的来源: %s:%s" %addr)
  print("客户端接收信息的数据: %s" %data.decode('utf-8'))

第三步:关闭套接字

u_client.close()

服务端代码:udp_server.py

第一步:导入socket模块和创建套接字

import socket
u_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

第二步:开始通信

# 绑定端口
u_server.bind(('localhost', 8887))

print("%s:%s 开始工作" %u_server.getsockname())

while True:
  # 接收数据
  # u_server.recvfrom() 接收UDP数据,返回值是(data,address)
  data, addr = u_server.recvfrom(1024)
  print("接收信息的来源: %s:%s" %addr)
  print("接收信息的数据: %s" %data.decode('utf-8'))

  # 发送原地址数据
  send_data = ("接收到数据:"+data.decode('utf-8')+" --Thanks").encode('utf-8')
  u_server.sendto(send_data, addr)

  # 退出系统操作
  if(data.decode('utf-8') == 'exit'):
    break

第三步:关闭套接字

u_server.close()

测试结果

新建两个cmd窗口,分为执行客户端和服务端的代码

python实现一个简单的udp通信的示例代码

python实现一个简单的udp通信的示例代码

python实现一个简单的udp通信的示例代码

python实现一个简单的udp通信的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用PYTHON创建XML文档
Mar 01 Python
python实现多线程采集的2个代码例子
Jul 07 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
浅谈Python 中整型对象的存储问题
May 16 Python
一道python走迷宫算法题
Jan 22 Python
Python中的 enum 模块源码详析
Jan 09 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python 设置输出图像的像素大小方法
Jul 04 Python
基于Python的OCR实现示例
Apr 03 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
Python读取指定日期邮件的实例
Feb 01 #Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 #Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 #Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 #Python
深入理解Python异常处理的哲学
Feb 01 #Python
python for 循环获取index索引的方法
Feb 01 #Python
对python For 循环的三种遍历方式解析
Feb 01 #Python
You might like
PHP系统流量分析的程序
2006/10/09 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
一个JQuery操作Table的代码分享
2012/03/30 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
关于Python中异常(Exception)的汇总
2017/01/18 Python
全面分析Python的优点和缺点
2018/02/07 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
韩国现代百货官网:Hmall
2018/03/21 全球购物
国庆节文艺活动方案
2014/02/03 职场文书
中学生获奖感言
2014/02/04 职场文书
更夫岗位责任制
2014/02/11 职场文书
工程技术员岗位职责
2014/03/02 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
用Python selenium实现淘宝抢单机器人
2021/06/18 Python