当前位置:首页 > Python教程 > python技巧

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服务端

             1
            #
            !/usr/bin/python
             2
            #
            -*-coding utf-8-*-
             3
             4
            #
             filename : Udpsocket.py
             5
            #
             author :
             6
            #
             create date : 2015-03-25
             7
            #
             modify date :
             8
            #
             description : udp socket
             9
            10
            #
            import stander lib
            11
            from socket import socket, AF_INET, SOCK_DGRAM
12import sys
13     sys.path.append( .. )
141516class Udpsocket():
17‘‘‘18        Udpsocket类,建立udp socket服务端
19        用法:
20            p = Udpsocket.Udpsocket()
21            p.listen()
22            无限循环监听端口,process重写数据处理方式
23‘‘‘2425def__init__( self ):
26‘‘‘27            初始化,建立socket,ip端口绑定
28‘‘‘29             self.udpServerSocket = socket( AF_INET, SOCK_DGRAM )
30             self.udpServerSocket.bind( (127.0.0.1, 20015) )
31             self.buffer_size = 1024 #缓冲区为1k323334def receive( self ):
35‘‘‘36            收取端口传来的数据
37‘‘‘38             raw_data, addr = self.udpServerSocket.recvfrom( int(self.buffer_size) )
39printconn from : , addr
40printreceive from udp client : , raw_data
4142return ( raw_data, addr )
434445def process( self, data ):
46‘‘‘47            socket传输的数据加工处理,继承重写该函数
48‘‘‘49             result = data
50return result
515253def send( self, addr, result ):
54‘‘‘55            返回信息
56‘‘‘57            self.udpServerSocket.sendto( result, addr )
585960def listen( self ):
61‘‘‘62            监听端口,无限循环
63‘‘‘64while True:
65printwait for connect66                 socket_data = self.receive()             #接收数据67                 result = self.process( socket_data[0] )  #处理接收的信息68                 self.send( socket_data[1], str(result) ) #返回数据69            self.close()
707172def close( self ):
73‘‘‘74            关闭连接
75‘‘‘76            self.udpServerSocket.close()
777879def__del__( self ):
80            self.close()
818283if__name__ == __main__:
84         p = Udpsocket()
85         p.listen()

Python Udp Socket客户端

             1
            #
            !/usr/bin/env python
             2
            #
            -*-coding:utf-8-*-
             3
             4
            from socket import *
 5 6     HOST = 127.0.0.1#主机 7     PORT = 20015             #端口 8     BUFFSIZE = 1024          #缓冲区大小 9     ADDR = ( HOST, PORT )    #地址1011#建立socket监听12     udpClientSocket = socket( AF_INET, SOCK_DGRAM )
1314#传送接收数据15     udpClientSocket.sendto( hello, ADDR )
16     data, addr = udpClientSocket.recvfrom( BUFFSIZE )
17printreceive data : , data
18#data, addr = udpClientSocket.recvfrom( BUFFSIZE )19     udpClientSocket.close()

 

原文:http://www.cnblogs.com/lzqhss/p/4422905.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐