2017-02-15 82 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 –

相关问题