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从ftp下载数据保存实例
Nov 20 Python
web.py获取上传文件名的正确方法
Aug 26 Python
python删除过期文件的方法
May 29 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
python使用webdriver爬取微信公众号
Aug 31 Python
Django框架实现的简单分页功能示例
Dec 04 Python
Python面向对象之类和对象实例详解
Dec 10 Python
Python初学者常见错误详解
Jul 02 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
opencv+python实现均值滤波
Feb 19 Python
Python的scikit-image模块实例讲解
Dec 30 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 cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
php简单复制文件的方法
2016/05/09 PHP
PHP7新功能总结
2019/04/14 PHP
判断控件是否已加载完成的代码
2010/02/24 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
移动节点的jquery代码
2014/01/13 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
详解Python中的四种队列
2018/05/21 Python
python修改FTP服务器上的文件名
2019/09/11 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
大学生四年生活自我鉴定
2013/11/21 职场文书
机电一体化自荐信
2013/12/10 职场文书
美术国培研修感言
2014/02/12 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
销售团队激励口号
2014/06/06 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
满月酒邀请函
2015/01/30 职场文书
SQL基础的查询语句
2021/11/11 MySQL