python实现udp数据报传输的方法

2014-06-03  来源:本站原创  分类:Python  人气:4 

这篇文章主要介绍了python实现udp数据报传输的方法,分别详细叙述了客户端与服务器端代码及相关函数用法,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了Python实现UDP数据报传输的方法,非常具有实用价值。分享给大家供大家参考。具体方法分析如下:

服务端代码:

import socket
port = 8081
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#从给定的端口,从任何发送者,接收UDP数据报
s.bind(("",port))
print 'waiting on port:',port
while True:
  data,addr = s.recvfrom(1024)
  #接收一个数据报(最大到1024字节)
  print 'reciveed:',data,"from",addr

客户端代码:

import socket
port = 8081
host = "localhost"
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.sendto("hello world",(host,port)) 

结果:先运行服务端,然后运行客户端,
服务端打印出:

waiting on port: 8081
reciveed: hello world from ('127.0.0.1', 62644)

补充:
socket.sendto(string[, flags], address)

官方文档如下:

Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address. The optional flags argument has the same meaning as for recv() above. Return the number of bytes sent. (The format of address depends on the address family — see above.)address参数在协议类型为socket.SOCK_DGRAM时,address的结构为一个元组,(host,port)的格式

希望本文所述对大家的Python程序设计有所帮助。

相关文章
  • python实现udp数据报传输的方法 2014-06-03

    这篇文章主要介绍了python实现udp数据报传输的方法,分别详细叙述了客户端与服务器端代码及相关函数用法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了Python实现UDP数据报传输的方法,非常具有实用价值.分享给大家供大家参考.具体方法分析如下: 服务端代码: import socket port = 8081 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #从给定的端口,从任何发送者,接收UDP数据报 s.bind(("&

  • 浅析Python中的序列化存储的方法 2014-03-23

    这篇文章主要介绍了Python中的序列化存储的方法,序列化存储主要针对的是内存和硬盘之间的写入操作,需要的朋友可以参考下 在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把name改成'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收.如果没有把修改后的'Bill'存储到磁盘上,下次重新运行程序,变量又被初始化为'Bob'. 我们把变量从内存中变成可存储或传

  • Python中获取对象信息的方法 2013-10-08

    这篇文章主要介绍了Python中获取对象信息的方法,是Python学习当中的基础知识,需要的朋友可以参考下 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <type 'int'> >>> type('str') <type 'str'> >>> type(None) <

  • python生成随机mac地址的方法 2013-10-15

    这篇文章主要介绍了python生成随机mac地址的方法,涉及Python操作随机字符串的技巧,需要的朋友可以参考下 本文实例讲述了python生成随机mac地址的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python import random def randomMAC(): mac = [ 0x52, 0x54, 0x00, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint

  • 使用python 获取进程pid号的方法 2013-11-04

    这篇文章主要介绍了使用python 获取进程pid号的方法,需要的朋友可以参考下 保存为.py文件后 运行脚本在后面添加进程名称即可 比如:python proinfo.py qq 即可获取QQ的进程信息,注意不区分大小写 #-*- encoding:UTF-8 -*- import os import sys import string import psutil import re def get_pid(name): process_list = psutil.get_process_li

  • python循环监控远程端口的方法 2013-11-22

    这篇文章主要介绍了python循环监控远程端口的方法,涉及Python实现端口监控的技巧,需要的朋友可以参考下 本文实例讲述了python循环监控远程端口的方法.分享给大家供大家参考.具体如下: 在ip.txt中每行一个ip地址和端口号,代码可循环监控这些ip地址的指定端口是否正常 #!/usr/bin/env python # -*- coding: gbk -*- import socket,time while 1: file_obj = open('ip.txt') for line i

  • python sys模块sys.path使用方法示例 2013-11-26

    这篇文章主要介绍了python sys模块sys.path使用方法,大家参考使用 python sys模块包含了与python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里面的方法和成员属性 import sys print dir(sys) result: 复制代码 代码如下: ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin

  • 一种通过SSH协议构造隧道达成数据加密传输的方法 2013-11-27

    这篇文章主要介绍了一种通过SSH协议构造隧道达成数据加密传输的方法,需要的朋友可以参考下 OpenSSH在实现时,给我们提供一个简单好用的Geek功能--端口转发.说是一个功能,其实是两个用法,一称之为本地端口转发,一称之为远程端口转发. SSH端口转发其实就是类似iptables的端口数据转发功能,也即是将请求在某一个指定端口的数据,转发到另外一个指定的端口上.呵呵,很抽象啊~ 下面说具体的用法: 下文的两个注解:本地:指执行SSH命令的发起端:远程:SSH命令的连接端.执行命令的环境要基于*

  • Python连接mssql数据库编码问题解决方法 2013-12-17

    这篇文章主要介绍了Python连接mssql数据库编码问题解决方法,本文方法同样适用mysql.sqllite.mongodb等数据库,需要的朋友可以参考下 python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合). (1).首先,要保证文件的开头要加上编码设置来说明文件的编码 #encoding=utf-8 (2).然后,

  • Python获取文件ssdeep值的方法 2013-12-24

    这篇文章主要介绍了Python获取文件ssdeep值的方法,是一个比较实用的技巧,本文详细讲述了实现这一功能的具体步骤及相关注意事项,需要的朋友可以参考下 本文实例讲述了Python获取文件ssdeep值的方法,分享给大家供大家参考.具体方法如下: 首先,得到ssdeep值,需要先import ssdeep 在ubuntu上安装pyssdeep时 一直出错 后来发现apt-cache search "ssdeep"时把几个全apt-get install 上,但问题依旧. 后来下载到p

  • 调试Python程序代码的几种方法总结 2014-01-10

    这篇文章主要介绍了调试Python程序代码的几种方法总结,文中代码基于Python2.x版本,需要的朋友可以参考下 程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug. 第一种方法简单直接粗暴有效,就是用print把可能有问题的变量打印出来看看: # err.py def foo(s): n = int

  • Python批量修改文件后缀的方法 2014-01-24

    这篇文章主要介绍了Python批量修改文件后缀的方法,有需要的朋友可以参考一下 近期下载了很多各种教程, 但是不幸的是后缀名都是 ".mp4", 而本人喜欢 ".rmvb" 后缀,由于有轻微洁癖, 受不了后面的 ".mp4" 缀, 但是手动修改又太过繁琐, 所以用近期刚学的 Python 来偷懒吧 ! : ) 如图为程序运行前的文件名 我们要做的呢, 就是在当前目录下,新建一个python文件, 如上图 demo2.py 然后用编辑器打开敲入如下

  • Python实现获取操作系统版本信息方法 2014-01-31

    这篇文章主要介绍了Python实现获取操作系统版本信息方法,本文在命令行中获取操作系统信息,介绍了platform模块的使用,需要的朋友可以参考下 最近,想在我的YouMoney(http://code.google.com/p/youmoney/)里面增加提取用户操作系统版本信息.比如windows用户,可能要返回Windows XP ,或者Windows 2003, 苹果用户应该返回Mac OS X 10.5.8.用了很多办法,包括在mac系统里调用系统命令,取环境变量,等等.最后无意发现,

  • Python单链表的简单实现方法 2014-02-03

    这篇文章主要介绍了Python单链表的简单实现方法,包括定义所需的字段及具体实现代码的分析,需要的朋友可以参考下 本文实例讲述了Python单链表的简单实现方法,分享给大家供大家参考.具体方法如下: 通常来说,要定义一个单链表,首先定义链表元素:Element.它包含3个字段: list:标识自己属于哪一个list datum:改元素的value next:下一个节点的位置 具体实现代码如下: class LinkedList(object): class Element(object): de

  • python根据路径导入模块的方法 2014-02-23

    这篇文章主要介绍了python根据路径导入模块的方法,分析了传统方法与改进方法,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考.具体方法如下: 常规做法如下: import sys sys.path.append('C:/full/path') from foo import util,bar 而要直接通过路径 import imp util = imp.load_source('util', 'C:/full/path/foo/

  • Python THREADING模块中的JOIN()方法深入理解 2014-03-04

    这篇文章主要介绍了Python THREADING模块中的JOIN()方法深入理解,本文用简洁易懂的语言总结了对JOIN()方法的理解,不同于其它文章,需要的朋友可以参考下 看了oschina上的两个代码,受益匪浅.其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束.这将阻塞正在调用的线程,直到被调用join()方法的线程结束.(好难翻译,应该是这个意思) 哈哈,这个易懂. join方法,如果一个线程或者一个函数在执行过程中要调用另外一

  • C#基于UDP进行异步通信的方法 2014-03-06

    这篇文章主要介绍了C#基于UDP进行异步通信的方法,实例分析了C#基于UDP实现异步通信的相关技巧,需要的朋友可以参考下 本文实例讲述了C#基于UDP进行异步通信的方法.分享给大家供大家参考.具体如下: 服务器端: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; namespa

  • Python实现简单状态框架的方法 2014-03-17

    这篇文章主要介绍了Python实现简单状态框架的方法,涉及Python状态框架的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了Python实现简单状态框架的方法.分享给大家供大家参考.具体分析如下: 这里使用Python实现一个简单的状态框架,代码需要在python3.2环境下运行 from time import sleep from random import randint, shuffle class StateMachine(object): ''' Usage:

  • python使用多线程不断刷新网页的方法 2014-03-19

    这篇文章主要介绍了python使用多线程不断刷新网页的方法,涉及Python多线程thread及time模块操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了python使用多线程不断刷新网页的方法.分享给大家供大家参考.具体如下: 这段代码可以开通过个线程不断刷新指定的页面,可用于刷票,增加网页访问量等等,不用再去按F5了 import thread import urllib2 import sys import time def usage(): print 'Usage

  • Python遍历目录的4种方法实例介绍 2014-03-25

    这篇文章主要介绍了Python遍历目录的4种方法实例介绍,本文讲解了使用os.popen运行shell列表命令.利用glob模块.利用os.listdir(推荐).利用os.walk(推荐)等4种方法,需要的朋友可以参考下 1.os.popen运行shell列表命令 def traverseDirByShell(path): for f in os.popen('ls ' + path): print f.strip() 2.利用glob模块 glob.glob(path)返回带目录的文件名.通