为了账号安全,请及时绑定邮箱和手机立即绑定

TCP多线程上传的文件的问题

TCP多线程上传的文件的问题

Ping87 2016-05-13 22:29:47
我用TCP多线程上传图片,原图片内存400KB,但是传出来的图片居然是2G左右,请问这是什么原因?代码如下:服务器端:import java.io.*;import java.net.*;public class TCP_serverThreadSocket { public static void main(String[] args) throws IOException { ServerSocket ss=new ServerSocket(9999); while(true){ Socket s=ss.accept(); Thread ts=new Thread(new Listenn(s)); ts.start(); } }}class Listenn implements Runnable{ Socket socket=null; public Listenn(Socket socket){ this.socket=socket; } public void run() { try { InputStream is = socket.getInputStream(); FileOutputStream fos=new FileOutputStream("D:\\JAVA Eclipse2\\新建文件夹\\new.jpg");byte []buf2=new byte[1024]; int b=is.read(buf2); while(b!=-1){ fos.write(buf2, 0, b); } socket.shutdownInput(); socket.close(); is.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }客户端:import java.io.*;import java.net.Socket;import java.util.*;//客户端public class TCP_UploadDataSocket  { public static void main(String[] args)throws Exception { Socket socket=new Socket("localhost",9999); byte []buf=new byte[1024]; FileInputStream fis=new FileInputStream("D:\\JAVA Eclipse2\\新建文件夹\\source.jpg"); OutputStream os=socket.getOutputStream(); int len2=0; while(( len2=fis.read(buf))!=-1){ os.write(buf, 0, len2);} socket.shutdownInput(); socket.close(); os.close(); }}
查看完整描述

1 回答

  • 1 回答
  • 1 关注
  • 1868 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信