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缩进区别分析
Feb 15 Python
Python代码调试的几种方法总结
Apr 15 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
windows系统下Python环境搭建教程
Mar 28 Python
Python Numpy计算各类距离的方法
Jul 05 Python
Django模板Templates使用方法详解
Jul 19 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
python request 模块详细介绍
Nov 10 Python
Python3中最常用的5种线程锁实例总结
Jul 07 Python
Python 图片添加美颜效果
Apr 28 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/10/23 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
php调整服务器时间的方法
2015/04/03 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
javascript下function声明一些小结
2007/12/28 Javascript
用JS剩余字数计算的代码
2008/07/03 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
葡萄牙语专业个人求职信
2013/12/10 职场文书
全神贯注教学反思
2014/02/03 职场文书
鸿星尔克广告词
2014/03/21 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
房租涨价通知
2015/04/23 职场文书
php字符串倒叙
2021/04/01 PHP
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
Python pandas求方差和标准差的方法实例
2021/08/04 Python