服务器端代码:
root@kali:~/python/socket/ftp# pwd
/root/python/socket/ftp
root@kali:~/python/socket/ftp# ls
socket_server_ftp1.py tab.py tab.pyc
root@kali:~/python/socket/ftp# cat socket_server_ftp1.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--
import tab
import os
import SocketServer
class 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 = '',8888
try:
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/ftp
root@kali:~/python/socket/ftp# ls
socket_clent_ftp1.py tab.py tab.pyc
root@kali:~/python/socket/ftp# cat socket_clent_ftp1.py
#!/usr/bin/env python
# --*-- coding:utf-8 --*--
import tab
import socket
#客户端Ip地址192.168.72.130
h = '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_data
s.close()
root@kali:~/python/socket/ftp#
运行情况
服务器端:
root@kali:~/python/socket/ftp# python socket_server_ftp1.py
got connection from : ('192.168.72.130', 52921)
ls
will run this on server: ls
ls -a
will run this on server: ls -a
pwd
will run this on server: pwd
got connection from : ('192.168.72.130', 52948)
ls -a
will run this on server: ls -a
#结束相关进程信息
root@kali:~/python/socket/ftp# lsof -i :8888
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 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 15807
root@kali:~/python/socket/ftp# kill -9 15807
-bash: kill: (15807) - No such process
[2]+ Killed python socket_server_ftp1.py
root@kali:~/python/socket/ftp#
客户端1:
root@kali:~/python/socket/ftp# vi socket_clent_ftp1.py
root@kali:~/python/socket/ftp# python socket_clent_ftp1.py
Input:ls
Received from server: socket_server_ftp1.py
tab.py
tab.pyc
Input:ls -a
Received from server: .
..
socket_server_ftp1.py
tab.py
tab.pyc
Input:pwd
Received from server: /root/python/socket/ftp
Input:
#结束相关进程信息
root@kali:~/python/socket/ftp# lsof -i :8888
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 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 15373
root@kali:~/python/socket/ftp# kill -9 16933
[2]+ Killed python socket_clent_ftp1.py
root@kali:~/python/socket/ftp#
客户端2:
root@kali:~/python/socket/ftp# python socket_clent_ftp1.py
Input:ls -a
Received from server: .
..
socket_server_ftp1.py
tab.py
tab.pyc
Input:
#结束相关进程信息
root@kali:~/python/socket/ftp# lsof -i :8888
[3]+ Killed python socket_clent_ftp1.py
root@kali:~/python/socket/ftp#