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简单的函数定义和用法实例
May 07 Python
利用Python破解验证码实例详解
Dec 08 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
python游戏地图最短路径求解
Jan 16 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
Python数据持久化存储实现方法分析
Dec 21 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 Python
浅谈Python描述数据结构之KMP篇
Sep 06 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
python实现双人五子棋(终端版)
Dec 30 Python
Python获取字典中某个key的value
Apr 13 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下通过POST还是GET来传值
2008/06/05 PHP
php实现倒计时效果
2015/12/19 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
MooTools 1.2介绍
2009/09/14 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
python判断设备是否联网的方法
2018/06/29 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
CSS3点击按钮实现背景渐变动画效果
2016/10/19 HTML / CSS
DJI全球:DJI Global
2021/03/15 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
毕业生文员求职信
2013/11/03 职场文书
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
个人求职信范文
2014/05/24 职场文书
领导干部保密承诺书
2014/08/30 职场文书
买卖合同协议书范本
2014/10/18 职场文书
2014年科普工作总结
2014/12/06 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
2014年医院科室工作总结
2014/12/20 职场文书