用ftp上传不行吗?为什么一定要用socket呢?只要能解决问题就行啊

解决方案 »

  1.   

    自定义一种报文格式,比如用xml的格式来定义
    <xml>
      <StringList>
        <String>This is String 1</String>
        <String>This is String 2</String>
      </StringList>
      <FileList>
        <File>
          <FileName>myFile.txt</FileName>
          <FileLength>12345</FileLength>
          <FileContent>ASDKJL(@#*eske23dhkdhiw83(*&*(WEr</FileContent>
        <File>
      </FileList>
    </xml>
      

  2.   

    同意楼上的作法。
    1.可以自己定义一套协议,来完成你的需求。这样比较麻烦,需要作的细节太多了。
    2.利用java中的对象流传输。
    在java中Socket支持对象流传输。
    一个Vector或ArrayList或HashMap都可以传输,而这些集合对象可以保存基本数据类型、对象...简单办法:
      Vector(ArrayList)中第一个元素保存字符串个数。这样就可以定位字符串与文件之间的位置,然后通过Socket整个集Vector(ArrayList)传输。
      HashMap就比较简单了,键名为String的保存字符串ArrayList;键名为File的保存文件内容的ArrayList;