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的更多相关文章

  1. python udp socket通信

    前段时间学习了一下c++的socket通信,但发现那玩意儿比较复杂还是转向python了,下面就是一个简单的udpsocket通信程序,欢迎大佬前来指正 udp聊天 import socket # 创 ...

  2. 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具

    老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...

  3. 使用 Python 的 Socket 模块构建一个 UDP 扫描工具

    译文:oschina 英文:bt3gl 当涉及到对一些目标网络的侦察时,出发点无疑是首先发现宿主主机.这个任务还可能包含嗅探和解析网络中数据包的能力. 几周前,我曾经谈到了如何使用Wireshark来 ...

  4. python的socket编程之udp编程

    在上篇文章中,仅仅讲述了如何进行了TCP编程,在本章中,将讲述使用udp进行编码,先看如下的代码,服务器端: root@python 513]# cat serverudp.py #!/usr/bin ...

  5. Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端     import ...

  6. python之socket

    一.初识socket      socket 是网络连接端点,每个socket都被绑定到一个特定的IP地址和端口.IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,     ...

  7. Python底层socket库

    Python底层socket库将Unix关于网络通信的系统调用对象化处理,是底层函数的高级封装,socket()函数返回一个套接字,它的方法实现了各种套接字系统调用.read与write与Python ...

  8. Python UDP broadcast PermissionError: [Errno 13] Permission denied

    /********************************************************************** * Python UDP broadcast Permi ...

  9. android firmware 利用UDP socket发送Magic Packet--python版本

    android firmware 利用UDP socket发送Magic Packet--python版本 #!/usr/bin/python import sys, time from struct ...

随机推荐

  1. Moxon(摩克森)天线介绍

    一.Moxon(摩克森)天线介绍Moxon天线是一种方形天线,性质上类似二单元Yagi(八木),增益高,具有很强的方向性,按尺寸做好后几乎不用调试,阻抗50欧姆.在U段,天线尺寸小,便于携带,是一款非 ...

  2. ubuntu下编译时遇到的错误及解决方式

    1.错误展示: hangma@ubuntu:~/test/test/protest/stack_test$ gcc  -c my_stack.c -o my_stack.o In file inclu ...

  3. Android中的测试类配置AndroidManifest.xml

    测试类至于要把一个类继承ActivityTestCase即可至于方法,根据需要自己建立方法:之后必须配置AnroidMainfest.xml文件 配置AndroidManifest.xml文件 1) ...

  4. C++豆知识索引

    C++Memset误区 C++ 哈希表 C++类型转换[转] C++ sizeof C++ 路径中\\与/

  5. puppet aix之自动化用户管理

    一.    用户组的管理 (一)   Puppet组管理特性 1.   manages_aix_lam 用来管理AIX的LAM(Loadable Authentication Module)系统. 2 ...

  6. 有关autoresizingMask属性遇到的一个小问题

    前言:在讲述这个小问题之前,我们有必要先了解一下UIViewAutoresizing的有关属性概念和使用详解. 参考:自动布局之autoresizingMask使用详解(Storyboard& ...

  7. Engineer Economic

    1.选择题 10.下列哪项不属于总成本费用() A.生产成本    B.机会成本    C.管理费用    D.财务费用 第1章 11.下列哪项关于自有资金的表述是错误的(D) A.自有资金包括资本金 ...

  8. BootStrap——模态框

    模态框(Modal)是BootStrap中很棒的一个插件.可以去BootStrap菜鸟驿站里面看看. 模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开 ...

  9. 应用按home键无最近应用

    在应用的AndroidManifest里面添加加载模式

  10. 中国大推力矢量发动机WS15 跨入 世界先进水平!

    "太行"WS-15让俄闭嘴令美叹服 歼20试飞向世界证明,中国军工世界一流,并有望与美英法争夺新一代航空发动机桂冠.笔者请教解放军专家证实:中国四代机所配套的两台18吨推力的WS- ...