问题:其实是Junit 测试多线程问题
private static final int LOCALPORT = 7777;
// private static final String SERVERHOST = "47.97.192.24";
private static final String SERVERHOST = "192.168.1.107";
@Test
public void tcpTest(){
ClientTcpUtil sharedClientTcpUtil = ClientTcpUtil.getInstance();
boolean isSuccess = sharedClientTcpUtil.createClientTcp(SERVERHOST, LOCALPORT);
System.out.println("Created client tcp "+isSuccess);
// while (true){
// try {
// Thread.sleep(3000);
// sharedClientTcpUtil.sendByTcp("我是内网tcp Client 在Test");
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// }
// sharedClientTcpUtil.sendByTcp("我是内网tcp Client 在Test");
}
普通的注解方式,当测试的内容含有多线程时,测试代码段运行结束后,其他非主动关闭线程,也将被强制结束,从而导致某些错误。
解决:Junit 有专属的多线程测试方法,可以百度Junit 多线程测试相关知识