gpt4 book ai didi

Java客户端-服务器发送文件流

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:49 25 4
gpt4 key购买 nike

我正在尝试编写一个非常简单的客户端-服务器应用程序,其中客户端发送文本文档 .docx 格式,服务器简单地接收。

我的问题是收到的文件(mupp.docx)已损坏,根据单词: http://www.ladda-upp.se/files/2014/b126506.jpg

我不确定我哪里做错了。我不确定的是:

*最后一次读取(fis.read(b) 返回 -1)是否应该写入文件?到客户端的输出流?

*我经常冲水吗?

*我的 byte[] b 大小不正确?

我尝试绕过 if(x==-1)break;在这两个计划中都没有成功。我不知道出了什么问题:/你知道吗?

public class FileSender{
public static void main(String ar[])throws Exception{

Socket clientSocket=new Socket("127.0.0.1",1234);
System.out.println("connected");
OutputStream out=clientSocket.getOutputStream();
FileInputStream fis=new FileInputStream("lupp.docx");

int x=0;
byte[] b = new byte[256];

while(true){
x=fis.read(b);
if(x==-1)break;
out.write(b);
out.flush();

}
fis.close();
out.close();
}
}
<小时/>
public class FileReceiver{
public static void main(String ar[])throws Exception{
ServerSocket ss=new ServerSocket(1234);
Socket clientSocket=ss.accept();

InputStream in=clientSocket.getInputStream();
FileOutputStream fos=new FileOutputStream("mupp.docx");

int x=0;
byte[] b = new byte[256];

while(true){
x=in.read(b);
if(x==-1)break;
fos.write(b);
fos.flush();
}
in.close();
fos.close();
}
}

最佳答案

将 out.write(b) 和 fos.write(b) 更改为 fos.write(b, 0, x);这将解决该错误。

关于Java客户端-服务器发送文件流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27077510/

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