python -- 多线程SocketServer2

来源:互联网 发布:淘宝 未上架 抢购技巧 编辑:程序博客网 时间:2024/06/05 20:00

服务器端代码:

root@kali:~/python/socket/ftp# pwd/root/python/socket/ftproot@kali:~/python/socket/ftp# lssocket_server_ftp1.py  tab.py  tab.pycroot@kali:~/python/socket/ftp# cat socket_server_ftp1.py #!/usr/bin/python# --*-- coding:utf-8 --*--import tabimport osimport SocketServerclass myTCPHandler(SocketServer.BaseRequestHandler):#定义类,继承SocketServer.BaseRequestHandler父类    def handle(self):        print 'got connection from :', self.client_address        while 1:            self.data = self.request.recv(4096)            print self.data            if not self.data:break#不存在的命令就结束            print 'will run this on server:', self.data            cmd = "%s 2>/dev/null" % self.data            result = os.popen(cmd).read()#用户输入数据,并读取数据,赋值给result值            if not result:                result = 'Error'            self.request.sendall(result)host,port = '',8888try:    server = SocketServer.ThreadingTCPServer((host,port),myTCPHandler)    server.serve_forever()except  KeyboardInterrupt:    server.shutdown()root@kali:~/python/socket/ftp# 

客户端代码:

root@kali:~/python/socket/ftp# root@kali:~/python/socket/ftp# pwd/root/python/socket/ftproot@kali:~/python/socket/ftp# lssocket_clent_ftp1.py  tab.py  tab.pycroot@kali:~/python/socket/ftp# cat socket_clent_ftp1.py #!/usr/bin/env python# --*-- coding:utf-8 --*--import tabimport socket#客户端Ip地址192.168.72.130h = '192.168.72.129'p = 8888 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect((h,p))while 1:    INPUT = raw_input("Input:")    s.send(INPUT)    received_data = s.recv(8096)    print "Received from server:", received_datas.close()root@kali:~/python/socket/ftp# 

运行情况
服务器端:

root@kali:~/python/socket/ftp# python socket_server_ftp1.pygot connection from : ('192.168.72.130', 52921)lswill run this on server: lsls -awill run this on server: ls -apwdwill run this on server: pwdgot connection from : ('192.168.72.130', 52948)ls -awill run this on server: ls -a#结束相关进程信息root@kali:~/python/socket/ftp# lsof -i :8888COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEpython  15807 root    3u  IPv4 135924      0t0  TCP *:8888 (LISTEN)python  15807 root    4u  IPv4 135948      0t0  TCP 192.168.72.129:8888->192.168.72.130:52921 (ESTABLISHED)python  15807 root    5u  IPv4 139022      0t0  TCP 192.168.72.129:8888->192.168.72.130:52948 (ESTABLISHED)root@kali:~/python/socket/ftp# kill -9 15807root@kali:~/python/socket/ftp# kill -9 15807-bash: kill: (15807) - No such process[2]+  Killed                  python socket_server_ftp1.pyroot@kali:~/python/socket/ftp# 

客户端1:

root@kali:~/python/socket/ftp# vi socket_clent_ftp1.pyroot@kali:~/python/socket/ftp# python socket_clent_ftp1.pyInput:lsReceived from server: socket_server_ftp1.pytab.pytab.pycInput:ls -aReceived from server: ...socket_server_ftp1.pytab.pytab.pycInput:pwdReceived from server: /root/python/socket/ftpInput:#结束相关进程信息root@kali:~/python/socket/ftp# lsof -i :8888COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEpython  15373 root    3u  IPv4 134162      0t0  TCP 192.168.72.130:52921->192.168.72.129:8888 (CLOSE_WAIT)python  16933 root    3u  IPv4 137536      0t0  TCP 192.168.72.130:52948->192.168.72.129:8888 (CLOSE_WAIT)root@kali:~/python/socket/ftp# kill -9 15373root@kali:~/python/socket/ftp# kill -9 16933[2]+  Killed                  python socket_clent_ftp1.pyroot@kali:~/python/socket/ftp# 

客户端2:

root@kali:~/python/socket/ftp# python socket_clent_ftp1.py Input:ls -aReceived from server: ...socket_server_ftp1.pytab.pytab.pycInput:#结束相关进程信息root@kali:~/python/socket/ftp# lsof -i :8888[3]+  Killed                  python socket_clent_ftp1.pyroot@kali:~/python/socket/ftp# 
原创粉丝点击