android 通过socket上传文件到服务器并返回数据,该如何解决

android 通过socket上传文件到服务器并返回数据,急啊!!!
给大神是这样的,我在android上要通过socket上传一个文件和一些相关数据到服务器,然后我在服务器接收数据后并处理完成需要向android客户端返回一些相应数据,这些数据时通过PrintWriter  out = request.getWriter()  对象打印的。我在客户端怎么接收这些数据啊 ?

这是客户端发送文件的方法:
public static boolean postFileUseSocket(String path, Map<String, String> params, FormFile[] files) throws Exception{     
        final String BOUNDARY = "---------------------------7da2137580612"; //数据分隔线
        final String endline = "--" + BOUNDARY + "--\r\n";//数据结束标志
        
        int fileDataLength = 0;
        for(FormFile uploadFile : files){//得到文件类型数据的总长度
         StringBuilder fileExplain = new StringBuilder();
          fileExplain.append("--");
          fileExplain.append(BOUNDARY);
          fileExplain.append("\r\n");//-----------------------------7da2137580612
          fileExplain.append("Content-Disposition: form-data;name=\""+ uploadFile.getParameterName()+"\";filename=\""+ uploadFile.getFilname() + "\"\r\n");
          fileExplain.append("Content-Type: "+ uploadFile.getContentType()+"\r\n\r\n");
          fileExplain.append("\r\n");
          fileDataLength += fileExplain.length();
         if(uploadFile.getInStream()!=null){
         fileDataLength += uploadFile.getFile().length();
      }else{
       fileDataLength += uploadFile.getData().length;
      }
        }
        StringBuilder textEntity = new StringBuilder();
        for (Map.Entry<String, String> entry : params.entrySet()) {//构造文本类型参数的实体数据
            textEntity.append("--");
            textEntity.append(BOUNDARY);
            textEntity.append("\r\n");
            textEntity.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");
            textEntity.append(entry.getValue());
            textEntity.append("\r\n");
        }
        //计算传输给服务器的实体数据总长度
        int dataLength = textEntity.toString().getBytes().length + fileDataLength +  endline.getBytes().length;
        
        URL url = new URL(path);
        
        
   



        int port = url.getPort()==-1 ? 80 : url.getPort();
        Socket socket = new Socket(InetAddress.getByName(url.getHost()), port);   
       // socket.setKeepAlive(true);
        OutputStream outStream = socket.getOutputStream();
        //下面完成HTTP请求头的发送
        String requestmethod = "POST "+ url.getPath()+" HTTP/1.1\r\n";
        outStream.write(requestmethod.getBytes());
        String accept = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
        outStream.write(accept.getBytes());
        String language = "Accept-Language: zh-CN\r\n";
        outStream.write(language.getBytes());
        String contenttype = "Content-Type: multipart/form-data; boundary="+ BOUNDARY+ "\r\n";
        outStream.write(contenttype.getBytes());
        String contentlength = "Content-Length: "+ dataLength + "\r\n";
        outStream.write(contentlength.getBytes());