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程序抓取网页的HTML信息的一个小实例
May 02 Python
Python中规范定义命名空间的一些建议
Jun 04 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
Python 查找list中的某个元素的所有的下标方法
Jun 27 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Python networkx包的实现
Feb 14 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
通过实例解析Python RPC实现原理及方法
Jul 07 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冒泡排序算法代码详细解读
2011/07/17 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
yii操作cookie实例简介
2014/07/09 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
js left,right,mid函数
2008/06/10 Javascript
js 单引号 传递方法
2009/06/22 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
python使用fork实现守护进程的方法
2017/11/16 Python
django使用html模板减少代码代码解析
2017/12/12 Python
Python切片索引用法示例
2018/05/15 Python
Python continue继续循环用法总结
2018/06/10 Python
python生成器与迭代器详解
2019/01/01 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
Python的垃圾回收机制详解
2019/08/28 Python
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
销售冠军获奖感言
2014/02/03 职场文书
同学会邀请函模板
2015/01/30 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
画展观后感
2015/06/17 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
建房合同协议书
2016/03/21 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js