我写了一个SOCKET通信的程序,传输字符串采用的格式是:“类型长度值”
其中传输文件的代码是这样的:
public void run(){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(socket1.getInputStream()));
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream())),true);

String str=in.readLine();//get imformation
        String address=socket1.getInetAddress().getHostAddress();
         int i=0;
    int j=str.length();
    String sn=null;
  while(i<j)
  {
  char c=str.charAt(i);
  String slen=str.substring(i+1,i+2);
  int len=java.lang.Integer.parseInt(slen);
  
  switch(c)
   {
  case'M':
  sn=str.substring(i+3,i+3+len-1);
  break;
  case'O':
  String currentImage=str.substring(i+3,i+3+len-1);
  break;
  case'D':
  String model=str.substring(i+3,i+3+len-1);
  break;
  case'C':
  String comp=str.substring(i+3,i+3+len-1);
  break;
  case'A':
  String GatewayAuthentication=str.substring(i+3,i+3+len-1);
  break;
  default:
  String othermsg=str.substring(i+3,i+3+len-1);
  break;
  }
  i=i+3+len;
  
  }
 System.out.println(sn);

System.out.println(str);


}
catch(IOException e){
System.err.println("IO Exception");
}
finally{
try{
socket1.close();
}
catch(IOException e){
System.err.println("Socket not closed");
}
}
}
客户端发送信息的代码是: out.println("M1700:12:C5:00:25:1E");
客户端响应正常,但服务器端却出现以上格式错误信息。请你们帮我看一下好吗?小妹先谢了。