我编写了一个简单的Python脚本,该脚本读取文件并通过套接字流式传输内容。我目前连接到的应用程序只是从套接字读取数据并将其写入文件。但是,接收端的数据不完整。文件的前约150行不会被接收,最后一行也不会被接收。我的Python代码没有发现任何明显的错误,但是如果有人指出我做错了什么,我将不胜感激。如果有另一种方法可以完成此任务,则可能也会有所帮助。谢谢。
编辑:我很确定这是此代码的问题,而不是接收方的问题,因为我有此Python代码的C ++版本,接收端可以正常工作。但是,我不知道这里可能出什么问题。
import socket
import sys
import time
__all__=['Stream_File_to_Socket']
def Stream_File_to_Socket(port,input_file):
# create socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost',port)
sock.bind(server_address)
sock.listen(1)
# open file and send data
f = open(input_file,"r")
while True:
#print('waiting for a connection')
connection, client_address = sock.accept()
if connection.fileno() != -1 :
break
#print("no connection!")
return(-1)
time.sleep(0.5)
buffer_size = 1024
while True:
data = f.readline()
if not data:
connection.send(data)
break
connection.send(data)
time.sleep(0.01)
f.close()
return(0)