2015-05-06 208 views
-1

我连接了服务器,但我不太了解TCP如何完美地完成任务。我想在开始编写内容之前发送文件名,但是如何从内容中单独读取文件名。这对于使用socket.receive(packet)的UDP来说非常简单,但我无法想象使用TCP套接字做这种做法。通过TCP/SSL套接字发送内容之前发送/接收文件名

+0

http://stackoverflow.com/questions/10367698/java-multiple-file-transfer-over-socket的可能的复制。 – EJP

回答

1

你有两种选择,具体取决于您的协议的设计:

  1. 发送文件名长度为固定大小的整数,然后发送实际文件名。然后接收器可以首先读取长度,然后读取它指示读取文件名的多个字节。

    <length><filename><file data> 
    
  2. 发送文件名,然后发送一个唯一的分隔符,如CRLF。接收器可以继续阅读直到遇到分隔符。

    <filename><delimiter><file data> 
    
1

使用固定的字节数写入文件名的长度。然后编写文件名。

在接收端,读取文件名的长度,然后知道长度后,读取文件名。