Sockets 在通过TCP/SSL套接字发送内容之前发送/接收文件名

Sockets 在通过TCP/SSL套接字发送内容之前发送/接收文件名,sockets,ssl,tcp,Sockets,Ssl,Tcp,我已经连接了服务器,但我不太明白TCP是如何工作得足够好以完成任务的。我想在开始编写内容之前发送文件名,但是如何将文件名与内容分开读取呢。这在UDP和socket.receive(数据包)中非常简单,但我想不出一种与TCP套接字类似的方法。使用固定的字节数写入文件名的长度。然后写文件名 <length><filename><file data> 在接收端,读取文件名的长度,知道长度后,读取文件名。根据协议的设计,您有两个选项: <length>&

我已经连接了服务器,但我不太明白TCP是如何工作得足够好以完成任务的。我想在开始编写内容之前发送文件名,但是如何将文件名与内容分开读取呢。这在UDP和socket.receive(数据包)中非常简单,但我想不出一种与TCP套接字类似的方法。

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

<length><filename><file data>

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

根据协议的设计,您有两个选项:

<length><filename><file data>
  • 将文件名长度作为固定大小的整数发送,然后发送实际文件名。然后,接收器可以先读取长度,然后读取它指示读取文件名的字节数

    <length><filename><file data>
    
  • 可能的副本。