【发布时间】:2013-12-05 15:36:38
【问题描述】:
我已经编写了服务器-客户端应用程序。服务器用c#编写,客户端代码使用java编写。通信协议是TCP。
使用 tcp 传输文件时,可能会发送丢失的数据。换句话说,tcp 是否保证数据正确到达。(我是否应该发送此文件的标头信息以检查错误,例如文件大小、哈希等)
【问题讨论】:
-
TCP 偶尔会出现错误。这就是为什么您有时会看到带有文件的校验和。
-
TCP 是reliable
-
Sriram 我知道 tcp 是可靠的包裹。我的意思是它正在检查错误、包裹丢失等。但我不确定订购包裹传输的可靠性。换句话说,假设你要发送一个大通过 tcp 文件。在向客户端传输文件时,一个包丢失,当然它会再次发送,原因是 tcp。但是在客户端你打开了一个流并将传入的数据写入文件,那么包发生了什么。它是不是它应该的顺序。背景发生了什么?如果我直接将传入流写入文件,是否正确写入?
-
@DavutÖzcan TCP 负责所有这些。它永远不会以错误的顺序发送字节。
TCP provides reliable, ordered, error-checked delivery of a stream of octets between programs running on computers connected to a local area network, intranet or the public Internet. It resides at the transport layer来自维基 -
感谢您的回复。
标签: c# java sockets networking tcp