Python Udp Socket
socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信
python2.6实现,基于AF_INET(网络套接字)
类型SOCKET_STREAM(TCP套接字),SOCKET_DGRAM(UDP套接字)
UDP socket实现较TCP要简单,没有建立连接的过程,服务端无限循环接收数据,处理数据返回,客户端也无需建立通信连接,
直接发送数据接收数据即可
UDP socket通信逻辑
UDP服务端:创建socket>>>绑定本地服务器>>>无限循环>>>接收信息返回信息
UDP客户端:创建socket>>>发送信息接收信息
Python Udp Socket服务端
#!/usr/bin/python
#-*-coding utf-8-*- # filename : Udpsocket.py
# author :
# create date : 2015-03-25
# modify date :
# description : udp socket #import stander lib
from socket import socket, AF_INET, SOCK_DGRAM
import sys
sys.path.append( '..' ) class Udpsocket():
'''
Udpsocket类,建立udp socket服务端
用法:
p = Udpsocket.Udpsocket()
p.listen()
无限循环监听端口,process重写数据处理方式
''' def __init__( self ):
'''
初始化,建立socket,ip端口绑定
'''
self.udpServerSocket = socket( AF_INET, SOCK_DGRAM )
self.udpServerSocket.bind( ('127.0.0.1', 20015) )
self.buffer_size = 1024 #缓冲区为1k def receive( self ):
'''
收取端口传来的数据
'''
raw_data, addr = self.udpServerSocket.recvfrom( int(self.buffer_size) )
print 'conn from : ', addr
print 'receive from udp client : ', raw_data return ( raw_data, addr ) def process( self, data ):
'''
socket传输的数据加工处理,继承重写该函数
'''
result = data
return result def send( self, addr, result ):
'''
返回信息
'''
self.udpServerSocket.sendto( result, addr ) def listen( self ):
'''
监听端口,无限循环
'''
while True:
print 'wait for connect'
socket_data = self.receive() #接收数据
result = self.process( socket_data[0] ) #处理接收的信息
self.send( socket_data[1], str(result) ) #返回数据
self.close() def close( self ):
'''
关闭连接
'''
self.udpServerSocket.close() def __del__( self ):
self.close() if __name__ == '__main__':
p = Udpsocket()
p.listen()
Python Udp Socket客户端
#!/usr/bin/env python
#-*-coding:utf-8-*- from socket import * HOST = '127.0.0.1' #主机
PORT = 20015 #端口
BUFFSIZE = 1024 #缓冲区大小
ADDR = ( HOST, PORT ) #地址 #建立socket监听
udpClientSocket = socket( AF_INET, SOCK_DGRAM ) #传送接收数据
udpClientSocket.sendto( 'hello', ADDR )
data, addr = udpClientSocket.recvfrom( BUFFSIZE )
print 'receive data : ', data
#data, addr = udpClientSocket.recvfrom( BUFFSIZE )
udpClientSocket.close()
Python Udp Socket的更多相关文章
- python udp socket通信
前段时间学习了一下c++的socket通信,但发现那玩意儿比较复杂还是转向python了,下面就是一个简单的udpsocket通信程序,欢迎大佬前来指正 udp聊天 import socket # 创 ...
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具
老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...
- 使用 Python 的 Socket 模块构建一个 UDP 扫描工具
译文:oschina 英文:bt3gl 当涉及到对一些目标网络的侦察时,出发点无疑是首先发现宿主主机.这个任务还可能包含嗅探和解析网络中数据包的能力. 几周前,我曾经谈到了如何使用Wireshark来 ...
- python的socket编程之udp编程
在上篇文章中,仅仅讲述了如何进行了TCP编程,在本章中,将讲述使用udp进行编码,先看如下的代码,服务器端: root@python 513]# cat serverudp.py #!/usr/bin ...
- Python基于socket模块实现UDP通信功能示例
Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import ...
- python之socket
一.初识socket socket 是网络连接端点,每个socket都被绑定到一个特定的IP地址和端口.IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如, ...
- Python底层socket库
Python底层socket库将Unix关于网络通信的系统调用对象化处理,是底层函数的高级封装,socket()函数返回一个套接字,它的方法实现了各种套接字系统调用.read与write与Python ...
- Python UDP broadcast PermissionError: [Errno 13] Permission denied
/********************************************************************** * Python UDP broadcast Permi ...
- android firmware 利用UDP socket发送Magic Packet--python版本
android firmware 利用UDP socket发送Magic Packet--python版本 #!/usr/bin/python import sys, time from struct ...
随机推荐
- 离线破win2003域账号密码(更新域数据库不在默认路径的情况)
国内网站讲了许多方法,很多也讲得不清楚.我把我尝试成功的经验跟大家分享. 方法是按照tim的文章操作,链接如下: http://pauldotcom.com/2011/11/safely-dumpin ...
- UNIQUE NullAble
一般情况 UNIQUE 不应该出现nullable的 但是如果我们要支持也是有办法的,就是写一个filter. https://msdn.microsoft.com/en-us/library/ms1 ...
- Angularjs Scope 原型链
我们知道scope是可以继承的.scope的继承和js原型链是同一个概念. <div ng-controller="parentCtrl"> {{name}} < ...
- .Net框架与框架类库-转
http://blog.csdn.net/rrrfff/article/details/6686493 .NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework类 ...
- Another Look at Events(再谈Events)
转载:http://www.qtcn.org/bbs/simple/?t31383.html Another Look at Events(再谈Events) 最近在学习Qt事件处理的时候发现一篇很不 ...
- 模糊集合和隶属度函数--AForge.NET框架的使用(一)
原文:模糊集合和隶属度函数--AForge.NET框架的使用(一) 什么是AForge.NET? AForge.NET是一个为开发人员和研究人员开发的框架,它可以用于计算机视觉,遗传算法,图像处理,神 ...
- QComboBox调用clear函数崩溃的问题
项目有个需求是这样的: QComboBox需要动态清楚添加Item列表,并且之前设置了QComboBox当前index改变的信号,一旦这个clear调用,当前index就改变,因为一旦改变,信号就发出 ...
- FE: Sass and Bootstrap 3 with Sass
Sass简介 Sass是CSS的预处理语言:提供了变量定义.函数定义.函数调用.类继承.嵌套(CSS层级关系)及代码引入功能. Sass安装指南 MAC OS X 10.10.3 终端 -> ...
- HDU_2030——统计文本中汉字的个数
Problem Description 统计给定文本文件中汉字的个数. Input 输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本. Output 对于每一段文本,输出其中的汉 ...
- Java IntelliJ IDEA 不能显示项目里的文件结构解决办法
按下列步骤操作: 1. 关闭IDEA, 2.然后删除项目文件夹下的.idea文件夹 3.重新用IDEA工具打开项目