java中怎么用socket 一次传多个文件啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么用socket 一次传多个文件啊?相关的知识,希望对你有一定的参考价值。

传单个文件的时候是client发送文件名,server接收文件名,然后开始传,client开始接收。
传多个文件的时候,我开始的时候,把文件列表放在string[]中,然后用for(;i<name.length;i++)的方法,里面用传单一文件的方法,但是总是出现socket lose的错误。
求助~~~~~~~~~~

  java中用socket一次传多个文件,参考思路如下:
  1、把线程放到Vector 线程池里面;
  2 、每次从Vector里面拿到第一个空闲的,如果没有,就新建一个线程,并保存到线程池, 线程状态为使用中;
  3 、线程完毕后,通知管理类,管理类把线程标识为空闲;
  可以封装为简单的方法,如下:
  public MyThread getFreeThread()
  .. // 从池里面获取一个空闲线程
  
  
  public void finished(MyThread o)
  // 线程通知管理类,我已经完成了
  
参考技术A 客户端接收多个文件的时候他所获取到的任然是一个字节流序列,所以你要确保第一个文件的序列有多长,第二个有多长....
然后在客户端截取这些序列进行保存操作,处理方法有很多种,我以前用过的一种方法是接收数据时前1024个字节放文件名,然后的8个字节放文件大小,接着就是文件的信息。客户端只需要按这种方式解析就行了。。。
希望对你有用。。。。本回答被提问者采纳
参考技术B 你好,能把你的多文件传输的例子发给我看一下吗,谢谢啦!!

请教下json里用多个值的时候,啥时候用数组的中括号啊

var test =name:1
用点的时候,后面需要是一个指定的属性名称,譬如说 test.name,不需要用引号括起来,因为默认name就是test里面的属性,但是如果写 var obj = name 。test.obj就是不正确的,因为obj这个时候是被当成一个固定的字符串,不是变量。

用中括号的时候 ,括号里面可以是变量或者字符串,譬如说,var obj = "name",test[obj]会自动识别成obj["name"],因为中括号会计算一次生成字符串访问。当然可以直接写obj["name"],

其实 test.name 最终也会按照 test["name"]去执行的

所以用点的时候后面一定要是一个指定的 属性名,用[]时候后面一定是一个变量或者固定属性名的字符串。
参考技术A 早秋(许浑)

以上是关于java中怎么用socket 一次传多个文件啊?的主要内容,如果未能解决你的问题,请参考以下文章

一次select多个socket的测试结果

Java多线程Socket的关闭问题

java socket实现,如果有并发访问100个用户,然后每个用户10个处理一次,该怎么写这个socket程序呢!

用java 调用python 类里面的方法 怎么调用啊 怎么调用类web 下面的adder方法啊

Java项目怎么控制权限啊?

请教下json里用多个值的时候,啥时候用数组的中括号啊