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());
  String alive = "Connection: Keep-Alive\r\n";
  outStream.write(alive.getBytes());