SocketServer.StreamRequestHandler中对客户端发过来的数据是用rfile属性来处理的,rfile是一个类file对象.有缓冲.可以按行分次读取;发往客户端的数据通过wfile属性来处理,wfile不缓冲数据,对客户端发送的数据需一次性写入.
如下代码:
#! /usr/bin/env python
#coding=utf-8
'''
单线程服务器程序
'''
from SocketServer import TCPServer as TCP, StreamRequestHandler as SRH
class MyTCPHandler(SRH):
def handle(self):
'''
覆盖方法,对父类的方法重写
'''
self.firstline=self.rfile.readline().strip()
#命令分发
if(self.firstline=='login'):
print 'if login'
name=self.rfile.readline().strip()
print name
pwd=self.rfile.readline().strip()
print name
self.login(name,pwd)
elif(self.firstline=='start_server'):
pass
elif(self.firstline=='stop_server'):
pass
elif(self.firstline=='open_firewall'):
pass
elif(self.firstline=='close_firewall'):
pass
elif(self.firstline=='read_firewall_ip_list'):
pass
elif(self.firstline=='write_firewall_ip_list'):
pass
elif(self.firstline=='read_server_ip_list'):
pass
elif(self.firstline=='write_server_ip_list'):
pass
elif(self.firstline=='remote_update'):
pass
elif(self.firstline=='local_synchronize'):
pass
else:
print 'error'
'''print self.rfile.readline()
print self.rfile.readline()
'''
line=self.rfile.readline()
while line!='':
#self.wfile.write('%s' % line)
line=self.rfile.readline()
print line
self.wfile.write('ok'+'ok2'+'ok3')#这里的ok,ok1,ok2不能分次write,会报错
def login(self,name,pwd):
print 'login'
self.wfile.write(name+pwd+'ok')
if __name__ == "__main__":
#本机,使用端口9999
HOST, PORT = "localhost", 9999
# 创建服务器并绑定到本机的9999端口
server = TCP((HOST, PORT), MyTCPHandler)
# Activate the server; this will keep running until you
# interrupt the program with Ctrl-C
server.serve_forever()
分享到:
相关推荐
第八周-第09章节-Python3.5-SocketServer.avi
首先,先了解下SocketServer模块中可供使用的类: BaseServer:包含服务器的核心功能与混合(mix-in)类挂钩;这个类只用于派生,所以不会生成这个类的实例;可以考虑使用TCPServer和UDPServer。 TCPServer/UDP...
Socket的英文原义是“孔”或“插座”,在Unix的进程通信机制中又称为‘套接字’。套接字实际上并不复杂,它是由一个ip地址以及一个端口号组成。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座...
SocketServer.rar
模仿python中的socket以及SocketServer类,做了简单的封装和实现,对些小的测试代码,可以轻松的套用
python之socketserver实现并发通信
python网络编程socketserver[总结].pdf
使用c#语言进行网口程序开发
python网络编程socketserver宣贯.pdf
windows Socket server
主要介绍了Python探索之SocketServer详解,小编觉得还是比较不错的,这里分享给大家,供需要的朋友参考。
socket只能处理一个client连接,如果需要并发处理多个...class My_Tcp_Handler(socketserver.BaseRequestHandler): #下面的handler是自己定义的server与client交互的过程,所有交互过程都在此方法内部实现.方法名han
第八周-第10章节-Python3.5-SocketServer多并发.avi
SocketServer加密通信,记录IP地址,黑名单,白名单,首次不发送消息就加入黑名单
利用AsyncSocket编码进行ios设备间的网络通信
应用环境位C#,此接口类,封装了Socket通讯的,服务端,客户端。测试通讯良好,经过压力测试,实际应用环境广泛。比较适合了解TCP IP 通讯的程序员使用。
即时聊天 node vue socket.io mysql 项目 小