python Socket编程(二)----SocketServer

SocketServer是python网络编程的一个高级模块,封装了一些底层的基本方法,用SocketServer改写上一篇中的例子,服务端的程序如下:

'''
Created on 2012-3-9

@author: Administrator
'''
#!/usr/bin/env python

from SocketServer import (TCPServer as TCP,StreamRequestHandler as SRH)
from time import ctime


HOST=''
PORT=21567
ADDR=(HOST,PORT)

class MyRequestHandler(SRH):
    def handle(self):
        print '...connected from:',self.client_address
        self.wfile.write('[%s] %s' %(ctime(),self.rfile.readline()))


    
tcpServ = TCP(ADDR,MyRequestHandler)
print 'waiting for connection...'
tcpServ.serve_forever()
    
是不是简单很多呢,主要注意类 MyRequestHandler是StreamRequestHandler的子类,handle方法是父类的方法,在这里复写并打印。

客户端的程序没什么变化:

'''
Created on 2012-3-9

@author: Administrator
'''
#!/usr/bin/env python


from socket import *

HOST='localhost'
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)

while True:
    tcpCliSock=socket(AF_INET,SOCK_STREAM)
    tcpCliSock.connect(ADDR)
    data=raw_input('>')
    if not data:
        break
    tcpCliSock.send('%s \r\n' % data)
    data=tcpCliSock.recv(BUFSIZ)
    if not data:
        break
    print data.strip()

tcpCliSock.close()





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值