2017-02-15 81 views
0

我想寫一個文本文件使用python套接字編程的服務器響應雖然我的代碼工作,它不是一行一行地寫(即)我需要追加當前時間在每但它是在第二行打印Python的套接字客戶端recv(緩衝區大小)

您的幫助非常感謝!

服務器端:ping www.google.com | NC -l 9000

客戶端:

PORT = 9000 
    HOST = 127.0.0.1 
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    client.connect((self.HOST,self.PORT)) 
    with open(filename, 'wb') as f: 
     while (recieved_data < self.BUFFER_SIZE): 
      try: 
       data = client.recv(self.BUFFER_SIZE) 
       recieved_data += len(data) 
       f.write(data + ' ' + ip_port_details + ' ' + str(datetime.strftime(datetime.now(),'%Y%m%y%I%M%S'))) 
       print 'recieved_data',recieved_data 

回答

0

也許是因爲ping已經與換行符發送數據,\n。或者ip_port_details以相同的換行符號\n結尾。您可以通過data.strip('\n')刪除尾隨換行符,也可以通過data.split('\n')將輸入數據拆分爲字符串列表,併爲每個字符串附加一個時間戳。或者,你可以用一些東西替換所有的換行符:

>>> 'abc\nd123'.replace('\n', '<newline>') 
'abc<newline>123' 
+0

它的工作原理,感謝您的時間和答案@ Vovanrock2002 –

相關問題