gpt4 book ai didi

java - 如何使用套接字 channel 通过网络发送图像文件

转载 作者:行者123 更新时间:2023-12-01 16:11:28 25 4
gpt4 key购买 nike

我已经创建了服务器程序,它将向客户端发送图像文件。如果图像是 512 字节,我的程序可以正常工作。但对于大文件来说它确实工作得很好。

在这种情况下,我没有得到我应该得到的确切图像。意味着我恢复的图像存在某种不正确的方式。那么如何解决这个问题

我在服务器中使用java套接字 channel 和java nio,而在客户端使用简单套接字。

谢谢苏尼尔

最佳答案

这是您的错误:

while(fileChannel.read(buffer)>0)

read() 方法不一定会填充缓冲区;它将读取任意数量的字节并返回该数字。您必须考虑到读取小于缓冲区容量并仅写入那么多字节的情况,这也是必要的,因为文件大小不一定是缓冲区大小的倍数,并且最后一次读取几乎永远不会完全填充缓冲区.

在客户端也是如此 - available() 在这里没有用,您必须简单地读取然后处理您获得的字节数。

关于java - 如何使用套接字 channel 通过网络发送图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1068317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com