ThreadSocket阻塞
在在做一多程Socket配合的在在接受端老是2到3小就有一程死掉有一是界面程的一是接收理段程是死循外循是不是否有循是在里搜索什么理完并返回信息。望高手能我意不感激
public void run()
{
try
{
String readMess= " ";
client=null;
in=null;
out=null;
client =new Socket(ip,port);
//client =new Socket( "10.242.10.75 ",4660);
System.out.println(line+ " CONNECTION OK! ");
out = new DataOutputStream(client.getOutputStream());
in = new DataInputStream(client.getInputStream());
flag=true;
while(true)
{
/*
if(in.available()==0)
{
//break;
continue;
}
*/
System.out.print(line);
System.out.println(client.isConnected());
readMess=in.readLine().trim();
//System.out.println(readMess);
if(readMess.equals( " ")||readMess==null)
{
System.out.println( "while end! ");
break;
}
else
{
if(!client.isConnected())
{
System.out.println(line+ " is no connection! ");
}
id=trans.getID(readMess);
strData=trans.getData(readMess);
//System.out.println(id+ " data= "+strData);
insert_RCV_Data(strData,id);
int count=0;
while(true)
{
int getflag=get_send_flag(id);
if(getflag==0)
{
sleep(150);
count++;
if(count==20)
{
try
{
Statement stmt=con.createStatement();
String strsqlupdate= "update SYS_DATA_CHANNEL set flag=4 where id= "+id+ " and flag=0 ";
stmt.executeUpdate(strsqlupdate);
stmt.close();
} catch(Exception ex)
{
System.out.println( "errorUpdate : "+ex.getMessage());
}
break;
}
}
else if(getflag==1||getflag==2)
{
trans.sendData(out,strData,id,false);
this.data.insertElementAt( "ID: "+id+ " Data: "+strData,0);
get_send_Data();
break;
}
}
}
}
}
catch(Exception e)
{
System.out.println(ip+ " Thread run error : "+e.getMessage());
}
}
------解决方案--------------------
我帮你顶
[解决办法]
设定timeout