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设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
Python 闭包的使用方法
Sep 07 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
python爬虫scrapy图书分类实例讲解
Nov 23 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
Pyside2中嵌入Matplotlib的绘图的实现
Feb 22 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制作图型计数器的例子
2006/10/09 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
js数组操作常用方法
2014/05/08 Javascript
总结JavaScript中布尔操作符||与&&的使用技巧
2015/11/17 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
Hadoop中的Python框架的使用指南
2015/04/22 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
python递归全排列实现方法
2018/08/18 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
利用python实现汉诺塔游戏
2021/03/01 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
销售高级职员求职信
2013/10/29 职场文书
自我评价是什么
2014/01/04 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
南极大冒险观后感
2015/06/05 职场文书
学生会自荐信
2019/05/16 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
mysqldump进行数据备份详解
2022/07/15 MySQL