python Sock 问题

permiss 发布于 2012/04/24 10:52
阅读 1K+
收藏 2

写了个简单的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()             


加载中
0
SSmail
SSmail

确定你这个简单的socket能正常的收发信息么?

一步一步来调,试试。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部