package test;
import java.net.*; 
import java.io.*; 
public class Client{ 
private static Socket server; 
private BufferedWriter out2;
private BufferedReader in;
private String IP = "xxx.xxx.x.xxx";
private String recmsg = null;

/**
 * 连接控制器
 */
public void connsocket(){
try{
//server = new Socket(InetAddress.getLocalHost(),1001);
server = new Socket(IP,1001);
server.setSoTimeout(100);
in = new BufferedReader(new InputStreamReader(server.getInputStream())); 
out2=new BufferedWriter(new OutputStreamWriter(server.getOutputStream()));

System.out.println("客户端启动...");
System.out.println("监听IP:"+server.getInetAddress().toString());
System.out.println("监听端口:"+server.getPort());

//向序列号为19998的控制器发送请求时间
//String str = "[B7][01][4E][1E][01][30][00][9E][B7]";
//System.out.println("gogogo!");
}catch(Exception ee){
ee.printStackTrace();
}

}

/**
 * 
 * @param sendmsg
 * @return
 * @throws IOException
 */
public boolean sendMsg(String sendmsg) throws IOException{
connsocket();
out2.write(sendmsg);
out2.flush();

return true;
}

/**
 * 
 * @return
 * @throws IOException
 */
public String receiveMsg(String msg){

String str =null;
//System.out.println("开始接受");
try {
sendMsg(msg);
System.out.println("发送完毕,开始接受");
while((str=in.readLine())!=null){  //到此无论是否null都不执行了,为什么
System.out.println("=============");
recmsg +=str;
//System.out.println("重要的");
}
System.out.println("接受完毕");

//return recmsg;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("接受异常");
//return null;
}catch(Exception ee){
ee.printStackTrace();
System.out.println("其它异常");
//return null;
}
finally{
// in.close();
// out2.close();
// server.close();
}
return recmsg;

}

/**
 * 测试用例
 * @param args
 */
public static void main(String[] args){ 
Client c = new Client();
String msg = "[B7][01][4E][1E][01][30][00][9E][B7]";
//System.out.println("返回信息:"+c.receiveMsg(msg));
c.receiveMsg(msg);
System.out.println("main is going...!");

}不在执行了,报超时,不知道是软件还是硬件的问题,请高手指点?