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利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
Python OpenCV获取视频的方法
Feb 28 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
windows上彻底删除jupyter notebook的实现
Apr 13 Python
在python中使用nohup命令说明
Apr 16 Python
无惧面试,带你搞懂python 装饰器
Aug 17 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
python实现发送邮件
Mar 02 Python
opencv实现图像几何变换
Mar 24 Python
Python pandas之求和运算和非空值个数统计
Aug 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中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
jquery教程ajax请求json数据示例
2014/01/13 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
python实现目录树生成示例
2014/03/28 Python
Python实现从百度API获取天气的方法
2015/03/11 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
pandas带有重复索引操作方法
2018/06/08 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
python Scrapy框架原理解析
2021/01/04 Python
python解包用法详解
2021/02/17 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
建筑系毕业生自我鉴定
2014/01/24 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
质量整改通知单
2015/04/21 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
车间班组长竞聘书
2015/09/15 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
python多线程方法详解
2022/01/18 Python