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. Baidu Map Web API 案例

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. LeetCode_ Merge k Sorted Lists

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. / ...

  3. android项目中各个文件的介绍

    src:java源码gen:自动生成 R.javaandroid.jarandroid Dependenvies 支持jar包assets:资产目录 小的数据库 网页 bin:编译生成的临时文件lib ...

  4. 公网IP和私有IP

    IP地址是为了区分网络中不同主机所分配的一个地址,通过IP地址可以访问到每一台主机. IP地址分为公有地址和私有地址,公有地址由Internet NIC负责(比如中国互联网信息中心http://ip. ...

  5. iOS 定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等授权检测

    金田 iOS系统版本的不断升级的前提,伴随着用户使用设备的安全性提升,iOS系统对于App需要使用的硬件限制也越来越严格,App处理稍有不妥,轻则造成功能不可用用户还不知道,重则会造成App Cras ...

  6. Android 侧滑(双向滑动菜单)效果

    下面看看我们如何使用它,达到我们想要的效果 public class MainActivity extends Activity { /** * 双向滑动菜单布局 */ private SliderM ...

  7. mysql数据库优化[千万级查询]

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  8. iTunes备份文件路径

    Windows 7 电脑:C:\Users\使用者名称\AppData\Roaming\Apple Computer\MobileSync\Backup XP 电脑:C:\Documents and ...

  9. mysql简单练习

    数据库入门 2.1 引入 数据保存到内存: 优点: 1)读写非常快 缺点: 1)程序关闭导致数据丢失 数据保存到文件: 优点: 1)数据可以永久保存 缺点: 1)频繁地IO操作,效率不高! 2)数据管 ...

  10. DevExpress之进度条

    progressBarControl和marqueeProgressBarControl 一.progressBarControl progressBarControl是一个进度条控件 几个重要参数 ...