Python套接字(如何将文件名与文件内容分离)
我已经编写了两个客户端和服务器python脚本,分别是服务器正在侦听客户端发送的文件,下面是我侦听文件的服务器代码。代码的问题是我无法将文件名与文件数据分开。以下输出是接收到的数据。txtMyNamePython套接字(如何将文件名与文件内容分离),python,sockets,Python,Sockets,我已经编写了两个客户端和服务器python脚本,分别是服务器正在侦听客户端发送的文件,下面是我侦听文件的服务器代码。代码的问题是我无法将文件名与文件数据分开。以下输出是接收到的数据。txtMyName 您必须在TCP/IP之上创建自己的简单协议才能使其工作。我认为最简单的方法是在文件名和文件内容之间添加一个特殊字符(例如0x00)。接收站点可以检测到此字符并拆分文件名和文件内容 更复杂的协议还可以发送文件大小,以便接收站点可以检测传输何时结束以及是否发送了所有字节。 它也将是好的,发送确认消息给
您必须在TCP/IP之上创建自己的简单协议才能使其工作。我认为最简单的方法是在文件名和文件内容之间添加一个特殊字符(例如0x00)。接收站点可以检测到此字符并拆分文件名和文件内容 更复杂的协议还可以发送文件大小,以便接收站点可以检测传输何时结束以及是否发送了所有字节。 它也将是好的,发送确认消息给发送者,接收者得到了整个文件
有很多传输文件协议(TFTP、FTP),它们的存在是有原因的,因为没有任何协议的纯TCP/IP是无用的。您必须在TCP/IP之上创建自己的简单协议才能使其工作。我认为最简单的方法是在文件名和文件内容之间添加一个特殊字符(例如0x00)。接收站点可以检测到此字符并拆分文件名和文件内容 更复杂的协议还可以发送文件大小,以便接收站点可以检测传输何时结束以及是否发送了所有字节。 它也将是好的,发送确认消息给发送者,接收者得到了整个文件
有很多传输文件协议(TFTP、FTP),它们的存在是有原因的,因为上面没有任何协议的纯TCP/IP是无用的。您还需要包含发送文件的代码。@aya我已经包含了代码。您如何将文件名与文件的其余部分分开?空字节可能会起作用……只是想知道用一个空白的“``”来打印'filename',data.strip(),您还需要包含发送文件的代码。@aya我已经包含了代码您如何将文件名与文件的其余部分分开?一个空字节可能就可以了……只是想知道
打印'filename',data.strip()????
def sendFileName(self):
self.clientsocket.send("name:" + self.filename)
print 'filename', self.filename
def sendFile(self):
f=open(self.filename,"rb")
data= f.read(1024)
while (data):
if(self.clientsocket.send(data)):
print "sending data"
data = f.read(1024)
#readByte = open(self.filename, "rb")
#data = readByte.read()
#readByte.close()
#self.gateway.send(data)
self.clientsocket.close()
f.close
def receiveFile(self,sock):
data = sock.recv(1024)
print 'filename', data.strip()
f = open(data.strip(), "wb")
data = sock.recv(1024)
while (data):
f.write(data)
data=sock.recv(1024)
f.close()
self.server_socket.close()