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基于Tkinter实现的记事本实例
Jun 17 Python
python实现的希尔排序算法实例
Jul 01 Python
Python实现网站注册验证码生成类
Jun 08 Python
Python实现的科学计算器功能示例
Aug 04 Python
基于Django与ajax之间的json传输方法
May 29 Python
Windows下python3.7安装教程
Jul 31 Python
对Python中内置异常层次结构详解
Oct 18 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
python 如何获取页面所有a标签下href的值
May 06 Python
PyTorch 实现L2正则化以及Dropout的操作
May 27 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 Python
Python MNIST手写体识别详解与试练
Nov 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 Ajax中文乱码问题解决方法
2009/02/27 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
Jquery练习之表单验证实现代码
2010/12/14 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
Python求解平方根的方法
2015/03/11 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
Python适配器模式代码实现解析
2019/08/02 Python
python实现拼图小游戏
2020/02/22 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
2014学生会工作总结报告
2014/12/02 职场文书
病危通知单
2015/04/17 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书