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连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
简单的Python的curses库使用教程
Apr 11 Python
深入理解Python对Json的解析
Feb 14 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
Dec 14 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
Python集合操作方法详解
Feb 09 Python
Python读写csv文件流程及异常解决
Oct 20 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
python实现简单反弹球游戏
Apr 12 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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
smarty的section嵌套循环用法示例
2016/05/28 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
JSONP之我见
2015/03/24 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
2015/06/17 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
解除劳动合同协议书范本
2014/04/14 职场文书
施工质量承诺书范文
2014/05/30 职场文书
建筑节能汇报材料
2014/08/22 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
常用的Python代码调试工具总结
2021/06/23 Python
python神经网络ResNet50模型
2022/05/06 Python