黑马程序员技术交流社区

标题: 关于Socket传输大文件问题 [打印本页]

作者: 王贺    时间: 2013-11-28 13:10
标题: 关于Socket传输大文件问题
Socket s = new Socket("192.168.1.254",10007);
  FileInputStream fis = new FileInputStream(file);
  OutputStream out = s.getOutputStream();
  byte[] buf = new byte[1024];
  int len = 0;
  while((len=fis.read(buf))!=-1)
  {
   out.write(buf,0,len);
  }
如果我向服务器上传大点的文件,比如是100M的,我可以这么写吗,还有就是在项目中是怎么写的,用TCP还是UDP,求指导

作者: 潘际昌    时间: 2013-11-28 13:16
果断TCP  
作者: 衣带赞    时间: 2013-11-28 13:25
你这个程序用的就是TCP协议啊。UDP协议一次最大传输量为64k,一般用于聊天这种即时通信,或者不需要保证安全性的通信,它的特点是速度快、不需要建立链接。大流量的传输,比如下载、上传文件都用的TCP,特点是必须建立链接、可靠性高。
还有你这个程序有问题,没刷新啊。write后必须out.flush(),不然传输会有问题的。
作者: 冯晓骏    时间: 2013-11-28 20:09
一般向服务器传文件用的是FTP吧,FTP是基于TCP的,保证安全,还有一些其他的功能
TFTP是基于UDP的,由于不安全,只能传输一些小的文件,而且功能也很简陋
作者: 简★零度    时间: 2013-11-30 20:33
问题解决了就把类型改成提问结束1




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2