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实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
查看python下OpenCV版本的方法
Aug 03 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
Python的条件锁与事件共享详解
Sep 12 Python
pytorch实现线性拟合方式
Jan 15 Python
Python拼接字符串的7种方式详解
Mar 19 Python
Python分析最近大火的网剧《隐秘的角落》
Jul 02 Python
提高python代码运行效率的一些建议
Sep 29 Python
python中super()函数的理解与基本使用
Aug 30 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 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分页示例代码
2007/03/19 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
wxpython 学习笔记 第一天
2009/03/16 Python
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
Python单元和文档测试实例详解
2019/04/11 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
HTTP状态码详解
2021/03/18 杂记
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
会计实习生工作总结的自我评价
2013/10/07 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
新学期开学演讲稿
2014/05/24 职场文书
同学毕业留言寄语
2015/02/27 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
python开发飞机大战游戏
2021/07/15 Python
sql server 累计求和实现代码
2022/02/28 SQL Server
vue判断按钮是否可以点击
2022/04/09 Vue.js
Rust中的Struct使用示例详解
2022/08/14 Javascript