首先你的这个有两个错误,第一个这里 客户端 while(input.read(shuzu)!=-1)这里不应该这样写,还有客户端 FileOutputStream output=new FileOutputStream("c:\\1.gif");这句是多余的。这都不是重要的 。你的问题是出在你发送完毕没有关闭socket造成的。下面我贴上我修改后的代码
class reciever {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
ServerSocket ss=new ServerSocket(10007);
Socket s=ss.accept();
FileOutputStream fo=new FileOutputStream("1111.jpg");
OutputStream out=s.getOutputStream();
InputStream in=s.getInputStream();
int len=0;
while((len=in.read())!=-1){
fo.write(len);
}
System.out.println("上传完毕");
s.close();
}
}
class Sender {
/**
* 思路:创建服务 1.创建文件 2.写文件 3.传输出去 4获取文件返回的信息
*/
public static void main(String[] args)throws Exception {
Socket s=new Socket("127.0.0.1",10007);
OutputStream a=s.getOutputStream();
FileInputStream input=new FileInputStream("11.jpg");
byte[] shuzu=new byte[1024*1024];
int len = 0;
while((len = input.read(shuzu))!=-1){
a.write(shuzu,0,len);
}
s.close();
System.out.println("上传成功");
}
} |