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 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
python的unittest测试类代码实例
Dec 07 Python
python中的字典操作及字典函数
Jan 03 Python
Django数据库表反向生成实例解析
Feb 06 Python
python Opencv将图片转为字符画
Feb 19 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
python实现两个文件夹的同步
Aug 29 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
Python图像处理二值化方法实例汇总
Jul 24 Python
Django数据统计功能count()的使用
Nov 30 Python
python从ftp获取文件并下载到本地
Dec 05 Python
Python使用pyecharts控件绘制图表
Jun 05 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中的Class的几点个人看法
2006/10/09 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python中属性和描述符的正确使用
2016/08/23 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
金属材料工程个人求职的自我评价
2013/12/04 职场文书
竞选部长演讲稿
2014/04/26 职场文书
平面设计专业求职信
2014/08/09 职场文书
2014年教研组工作总结
2014/11/26 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
会计做账心得体会
2016/01/22 职场文书
关于使用Redisson订阅数问题
2022/01/18 Redis
python单向链表实例详解
2022/05/25 Python