@Override
public void run() {
while (!bExit ) {
try {
System.out.println("kaishile");
send();
System.out.println("开始了,开始了");
Thread.sleep(15000);
} catch( InterruptedException e) {
e.printStackTrace();
}
}
},15秒执行一次send();private void send() {
try {
if( client == null || client.isClosed()) {
client = new Socket(InetAddress.getByName(mServerAddr),mServerPort);
client.setSoTimeout(60000);
client.setTcpNoDelay(true);
outP = client.getOutputStream();
inP = client.getInputStream();
_log.debug("new socket is created, device id is " + mDeviceID);
}
} catch (IOException e) {
System.out.println("报错了IOException");
e.printStackTrace();
_log.error("deviceID:" + mDeviceID + " IOException ");
try {
outP.close();
inP.close();
client.close();
client = null;
} catch (IOException e1) {
e1.printStackTrace();
}
},我故意将地址写错,当创建socket失败时,就抛出报 错了IOException
java.net.ConnectException: Connection timed out: connect,这样就停止了,但是我想不管你是不是报错,我就15秒执行一次程序,现在是报错后直接挂掉了,程序不走了,希望大侠来看看
public void run() {
while (!bExit ) {
try {
System.out.println("kaishile");
send();
System.out.println("开始了,开始了");
Thread.sleep(15000);
} catch( InterruptedException e) {
e.printStackTrace();
}
}
},15秒执行一次send();private void send() {
try {
if( client == null || client.isClosed()) {
client = new Socket(InetAddress.getByName(mServerAddr),mServerPort);
client.setSoTimeout(60000);
client.setTcpNoDelay(true);
outP = client.getOutputStream();
inP = client.getInputStream();
_log.debug("new socket is created, device id is " + mDeviceID);
}
} catch (IOException e) {
System.out.println("报错了IOException");
e.printStackTrace();
_log.error("deviceID:" + mDeviceID + " IOException ");
try {
outP.close();
inP.close();
client.close();
client = null;
} catch (IOException e1) {
e1.printStackTrace();
}
},我故意将地址写错,当创建socket失败时,就抛出报 错了IOException
java.net.ConnectException: Connection timed out: connect,这样就停止了,但是我想不管你是不是报错,我就15秒执行一次程序,现在是报错后直接挂掉了,程序不走了,希望大侠来看看
解决方案 »
- 为什么JSP页面数据传不到actionform
- jsp获取table中某一行的值传递到另一页面
- 一个简单的问题
- 顶者有分!!! 300 分 求解 java 程序 ---- 分拣电子邮件
- 各位老大我用jsf+Spring+Hibernate开发时遇到一个问题,搞了好久没有解决请大家帮帮忙!
- struts1.2,关于一个action和多个form对应的问题。
- hibernate查询与修改问题
- 在BMP EJB里怎么配置jboss与mysql的连接?
- 请教一个对象生存周期的问题,高手请进
- 怎么用java.util.regex包中的类来进行全字匹配替换操作?
- log4j配置问题
- 客户端调用webservice是出现以下错误
你那么多的close(),居然不是写在finally里面?
你的client等变量,居然都是成员属性,而不是send()函数的局部变量?
class TestClient1 implements Runnable{
Socket client = null;
InetSocketAddress serverAddress = null;
boolean bExit = false;
public TestClient1(){
this("127.0.0.1", 7777);
}
public TestClient1(String serverIp, int port){
this.serverAddress = new InetSocketAddress(serverIp,port);
}
@Override
public void run() {
for(int i=0;!bExit;i++){
if(connect2Server()){
//连接成功
}else{
System.out.println("连接失败,重试("+i+")...");
try {
Thread.sleep(1000*15);
} catch (InterruptedException e) {
}
}
}
}
boolean connect2Server(){
boolean done = false;
try{
client = new Socket();
client.connect(serverAddress, 1000*60);
client.setSoTimeout(60*1000);
done = client.isInputShutdown() & client.isOutputShutdown();
}catch(Exception ex){
System.err.println("报错了:"+ex.getMessage());
try{
if(null!=client) client.close();
}catch(Exception ex1){
}
done = false;
}
return done;
}
}