写了个简单的sock 本想远程执行结果 并返回,可以返回部分,可结果无法返回,求指点。
服务端源码:
#!/usr/bin/env python import socket from time import ctime import sys import os import subprocess def main(): host = '192.168.1.111' port = 8888 buf_size = 1024 addr =(host, port) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(addr) sock.listen(buf_size) while True: print 'waiting for connection.........' connection,address = sock.accept() print 'connection IP is :' ,address while True: buf = connection.recv(1024) if not buf: break connection.send('[%s] %s' %(ctime(),buf) ) strlist= buf.split() print strlist[0],' ',strlist[1] listfile = subprocess.call([ strlist[0],strlist[1] ]) print listfile connection.send('[%s] %s' %(ctime(),listfile) ) #不知道是这里没发送出去,还是客户端那边没收到 connection.close() if __name__ == '__main__': main()
客户端源码:
#!/usr/bin/env python from socket import * def clint(): host = '192.168.1.111' port = 8888 bufsize = 1024 addr = (host,port) client = socket(AF_INET,SOCK_STREAM) client.connect(addr) while True: data = raw_input('Enter:') if not data or data=='exit': break client.send('%s\r\n' % data) revcdata = client.recv(bufsize) if not data: break print revcdata client.close() if __name__ == '__main__': clint()
确定你这个简单的socket能正常的收发信息么?
一步一步来调,试试。