Sending/Receiving 通过 TCP/SSL 套接字发送内容之前的文件名
Sending/Receiving a file name before sending content through TCP/SSL socket
我已经连接了服务器,但我不太了解 TCP 如何很好地完成任务。我想在开始编写内容之前发送文件名,但是如何将文件名与内容分开读取。这在使用 socket.receive(packet) 的 UDP 中真的很容易,但我想不出用 TCP 套接字来做这件事的可比方法。
使用固定字节数写入文件名的长度。然后写文件名。
在接收方,读取文件名的长度,然后在知道长度后读取文件名。
根据协议的设计,您有两个选择:
将文件名长度作为固定大小的整数发送,然后发送实际文件名。然后接收器可以先读取长度,然后读取它指示读取文件名的字节数。
<length><filename><file data>
发送文件名,然后发送一个唯一的分隔符,例如 CRLF
。然后接收方可以继续读取直到遇到定界符。
<filename><delimiter><file data>
我已经连接了服务器,但我不太了解 TCP 如何很好地完成任务。我想在开始编写内容之前发送文件名,但是如何将文件名与内容分开读取。这在使用 socket.receive(packet) 的 UDP 中真的很容易,但我想不出用 TCP 套接字来做这件事的可比方法。
使用固定字节数写入文件名的长度。然后写文件名。
在接收方,读取文件名的长度,然后在知道长度后读取文件名。
根据协议的设计,您有两个选择:
将文件名长度作为固定大小的整数发送,然后发送实际文件名。然后接收器可以先读取长度,然后读取它指示读取文件名的字节数。
<length><filename><file data>
发送文件名,然后发送一个唯一的分隔符,例如
CRLF
。然后接收方可以继续读取直到遇到定界符。<filename><delimiter><file data>