Python socket模块实现的udp通信功能示例


Posted in Python onApril 10, 2019

本文实例讲述了Python socket模块实现的udp通信功能。分享给大家供大家参考,具体如下:

socket介绍

socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:

它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页、QQ 聊天、收发 email 等等。

模拟udp_socket客户端(发送端):udp_client.py

#coding=utf-8
import socket
# 获取本机的ip地址
def get_addr():
  # 获取本机计算机名称
  hostname = socket.gethostname()
  # 获取本机ip并返回
  return socket.gethostbyname(hostname)
# 创建udp套接字,
# AF_INET表示ip地址的类型是ipv4,
# SOCK_DGRAM表示传输的协议类型是udp
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 要发送的信息
test_data = raw_input('请输入要发送的消息:')
print 'send_data = ', test_data
# 要发送的ip地址和端口(元组的形式)
host = get_addr()
test_addr = (host, 8080)
print 'send_addr = ', test_addr
print 'prepare to send ------'
# 发送消息
udp_socket.sendto(test_data, test_addr)
# 关闭套接字
udp_socket.close()
print 'send end ------'

模拟udp_socket套接字服务端(接收端):udp_server.py

# coding=utf-8
import socket
# 获取本机的ip地址
def get_addr():
  # 获取本机计算机名称
  hostname = socket.gethostname()
  # 获取本机ip并返回
  return socket.gethostbyname(hostname)
# 创建udp套接字,
# AF_INET表示ip地址的类型是ipv4,
# SOCK_DGRAM表示传输的协议类型是udp
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定本地信息,若不绑定,系统会自动分配
host = get_addr()
bind_addr = (host, 8080)
print 'bind_addr = ', bind_addr
udp_socket.bind(bind_addr) # ip和port,ip一般不用写,表示本机的任何一个ip
# 等待接收数据
revc_data = udp_socket.recvfrom(1024) # 1024表示本次接收的最大字节数
# 打印接收到的数据
print 'revc_data = ', revc_data
print 'data = ', revc_data[0]
print 'ip_port = ', revc_data[1]
# 关闭套接字
udp_socket.close()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
Python中垃圾回收和del语句详解
Nov 15 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
Aug 09 Python
Python3实现二叉树的最大深度
Sep 30 Python
python中复数的共轭复数知识点总结
Dec 06 Python
解决hive中导入text文件遇到的坑
Apr 07 Python
用Python创建简易网站图文教程
Jun 11 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 #Python
一个可以套路别人的python小程序实例代码
Apr 09 #Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 #Python
详解Python 解压缩文件
Apr 09 #Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 #Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 #Python
由Python编写的MySQL管理工具代码实例
Apr 09 #Python
You might like
php 数学运算验证码实现代码
2009/10/11 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
代码生成器 document.write()
2007/04/15 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Python中最大递归深度值的探讨
2019/03/05 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
Python自动抢红包教程详解
2019/06/11 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
纪检干部对照检查材料
2014/08/22 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
法院个人总结
2015/03/03 职场文书
大学生英文求职信范文
2015/03/19 职场文书
医院合作意向书范本
2015/05/08 职场文书
三八妇女节主持词
2015/07/04 职场文书
高中同学会致辞
2015/08/01 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
python实现局部图像放大
2021/11/17 Python