我写了一个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");
客户端响应正常,但服务器端却出现以上格式错误信息。请你们帮我看一下好吗?小妹先谢了。
其中传输文件的代码是这样的:
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");
客户端响应正常,但服务器端却出现以上格式错误信息。请你们帮我看一下好吗?小妹先谢了。
是不是没有try.catch啊。