【问题标题】:Sending/Receiving a file name before sending content through TCP/SSL socket在通过 TCP/SSL 套接字发送内容之前发送/接收文件名
【发布时间】:2015-07-17 08:05:22
【问题描述】:

我已经连接了服务器,但我并不真正了解 TCP 是如何工作得足以完成任务的。我想在开始编写内容之前发送文件名,但是如何将文件名与内容分开读取。这在带有 socket.receive(packet) 的 UDP 中真的很容易,但我想不出用 TCP 套接字来做这件事的类似方法。

【问题讨论】:

标签: sockets ssl tcp


【解决方案1】:

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

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

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

    <filename><delimiter><file data>
    

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-15
      • 2018-02-05
      • 1970-01-01
      • 2020-04-28
      • 2017-03-14
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多