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程序的执行效率的教程
Apr 02 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
Python3基于sax解析xml操作示例
May 22 Python
python 美化输出信息的实例
Oct 15 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
python多进程间通信代码实例
Sep 30 Python
Centos7 下安装最新的python3.8
Oct 28 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
python向图片里添加文字
Nov 26 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统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
Python中的异常处理简明介绍
2015/04/13 Python
python自定义类并使用的方法
2015/05/07 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python学生管理系统开发
2019/01/30 Python
Python中按值来获取指定的键
2019/03/04 Python
通过python3实现投票功能代码实例
2019/09/26 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
如何查看python关键字
2021/01/17 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
环保专业大学生职业规划设计
2014/01/10 职场文书
学生实习介绍信
2014/01/15 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
给客户的检讨书
2014/12/21 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP