我现在已经可以使用 SOCKET 进行普通的字符传输了,但是怎么样才可以使用 SOCKET 传输 BMP 类型的图片呢?
BMP类型的文件好像是二进制存储的,如果直接转换成 TXT ,复制的话会损坏,怎么处理?
我现在已经可以使用 SOCKET 进行普通的字符传输了,但是怎么样才可以使用 SOCKET 传输 BMP 类型的图片呢?
BMP类型的文件好像是二进制存储的,如果直接转换成 TXT ,复制的话会损坏,怎么处理?
socket不也是传输二进制流吗,你直接把bmp文件的二进制数组发送就行了。
注意要循环发送,循环接收,不要一下发一个超大的数据包
如果在广域网传输,还有考虑粘包分包的问题。
比如你发送的时候是固定每2000字节一个包循环发送
接收的时候可能会变成500字节一个包,3000字节一个包,路由器会自动给你分包粘包
但是tcp协议的好处就是绝对不会丢包(除非连接中断)而且一定能保证包达到的顺序和发出的顺序一致,那么你接收的时候把它们都按顺序连接起来(其实就是直接写入文件里面就行),但是包头最好做好校验,整个包到底多长最好一开始接收端就知道,以便接收到全部的数据之后正确的关闭文件,而不是无限等待。