[quote=引用 15 楼 zanfeng 的回复:] 在接受端受到一个包后 回复一个确认包 如果发送端没有受到这个包就重发包 我现在处理的就是这个方式。
在接受端受到一个包后 回复一个确认包 如果发送端没有受到这个包就重发包 我现在处理的就是这个方式。
[quote=引用 11 楼 crystal_lz 的回复:] udp本来就是不可靠的 举例来说 tcp就像打电话 在你想说话前 必须先拨通号码 建立好连接才能说话 就是三步握手 tcp可以“保证”你发送的数据肯定可以到达对方而且是顺序到达 udp就像发短信 你编辑类容发送即可 不需要确认对方是否开机 是否是空号等 都能发送成功 但是对方收不收得到 就不确定了 而且不能保证你发送的短信是顺序到达的 如果你非要用udp的话 你可以 在发送文件时候 先对数据包分块 比如512k一个包 然后带上一个包顺序 1 2 3 4 5。。。然后发送的时候 带上这个信息 然后全部发送过去 在接受方 然后对包进行重组 比如 收到一个包 看他是第几个块 比如 先收到2那么 就知道 这个是文件的 第二个 512字节数据 然后接收方在一个时间范围类 确认 是不是收到了 所有的 1 2 3 4 5 如果还有那个包 没有收到 那么就发送一个请求到发送方 比如 第五个包 没有收到 然后发送方 再次发送第五个数据包。。 不过 这样很麻烦的样子 是我自己YY的 参看而已
udp本来就是不可靠的 举例来说 tcp就像打电话 在你想说话前 必须先拨通号码 建立好连接才能说话 就是三步握手 tcp可以“保证”你发送的数据肯定可以到达对方而且是顺序到达 udp就像发短信 你编辑类容发送即可 不需要确认对方是否开机 是否是空号等 都能发送成功 但是对方收不收得到 就不确定了 而且不能保证你发送的短信是顺序到达的 如果你非要用udp的话 你可以 在发送文件时候 先对数据包分块 比如512k一个包 然后带上一个包顺序 1 2 3 4 5。。。然后发送的时候 带上这个信息 然后全部发送过去 在接受方 然后对包进行重组 比如 收到一个包 看他是第几个块 比如 先收到2那么 就知道 这个是文件的 第二个 512字节数据 然后接收方在一个时间范围类 确认 是不是收到了 所有的 1 2 3 4 5 如果还有那个包 没有收到 那么就发送一个请求到发送方 比如 第五个包 没有收到 然后发送方 再次发送第五个数据包。。 不过 这样很麻烦的样子 是我自己YY的 参看而已
udp还是很可靠的。就是自己要做很多东西。在局域网udp的特性体现不出来。但是在广域网内,效果相当突出,决大多数文件传输都是udp的。
udp还是很可靠的。就是自己要做很多东西。在局域网udp的特性体现不出来。但是在广域网内,效果相当突出,决大多数文件传输都是udp的。 这是我们刚给一个客户做的局域网,多文件上传下载,支持断点续传的。 http://download.csdn.net/detail/zanfeng/9099255
没记错的话 飞鸽 应该是TCP的吧。包括现在的飞秋也是。 UDP 是不可靠的,容易丢包。原因是 其服务端 只管发送数据,并不会收到客户端的应答。也就是 数据只管 发出去,至于客户端接受没接收到 服务端并不关心。 TCP 比UDP 可靠的多,服务端与客户端一直处于 “发送/响应” 模式,不过这种方法比较耗资源。
110,534
社区成员
642,575
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧