Java UDP文件传输,传输后文件损坏......

来源:百度知道 编辑:UC知道 时间:2024/07/02 00:55:20
前不久刚做过一个基于TCP的,好不容易才做完。老师又接着让我搞个UDP的O__O"
改写了一下之前的程序,但还是出现问题了.......
在两台机器间传输的话,txt,doc和jpg文件可以传递,但exe,zip这类文件都传输时大小没有改变,但是打开失败(不论文件大小)。
请问各位究竟是哪出问题了?可以的话请解释的详细些,本人还是菜鸟,如果太笼统的解释实在是无法理解。
我已把程序上传在http://blog.csdn.net/thdgytyi/archive/2009/01/03/3694065.aspx
请各位大大多多指教,谢谢。
请问如何按照这个要求修改程序?

使用RandomAccessFile
判断丢包可以这样判断:如果在未收到序号为N的包时,已经收到了N+10的包或者结束了,则发一个UDP包到服务器上要求重发
服务器接收客户端的请求的,按指定的序号重新发送就可以了

UDP是并不是可靠的传输方式,字节序列并没有得到校验,所以传输文件时出现错误也是难免的.因为,txt,doc和jpg本身即使出错也不会影响打开,顶多出现个别字符或是个别像素错误不会影响整体,而exe则是cpu的指令执行序列你错一个就将会导致程序无法执行,如果你懂hash的话可以将文件hash一下看看传输前后的hash码是否相同若不相同说明了传输过程出现了错误需要重传.
UDP一般应用在海量的并对准确性要求不高的传输上,并一般伴随有重传机制

载体把你的文件没有完全传输,建议使用对点传输