这是我创建的一个客户端 socket = new Socket(host,port);
dos = new DataOutputStream(socket.getOutputStream());
dis = new DataInputStream(socket.getInputStream());另有一个用VC写的服务端
现在的情况是,客户端发报文后,如果服务端没给应答报文.客户端就一直等待数据到来.
Java 可不可以判断 dis 中有没有数据呢. 或者 我dis.read可以跟一个超时呢,就是我只等2秒,如果应答报文长度不够,我就不等回码了.
我接收的函数是:
public int recv(byte[] buff,int offset, int len)
{
int reads = 0; try
{
//在这里不Read时,可以知道dis中有没有数据到达吗.我想没有报文到达就
//不读了,要不一读就阻在那里了.应加什么判断呀.
reads = dis.read(buff,offset,len);
}
catch(Exception e)
{
System.out.println("Exception:"+e);
}
return reads;
}
dos = new DataOutputStream(socket.getOutputStream());
dis = new DataInputStream(socket.getInputStream());另有一个用VC写的服务端
现在的情况是,客户端发报文后,如果服务端没给应答报文.客户端就一直等待数据到来.
Java 可不可以判断 dis 中有没有数据呢. 或者 我dis.read可以跟一个超时呢,就是我只等2秒,如果应答报文长度不够,我就不等回码了.
我接收的函数是:
public int recv(byte[] buff,int offset, int len)
{
int reads = 0; try
{
//在这里不Read时,可以知道dis中有没有数据到达吗.我想没有报文到达就
//不读了,要不一读就阻在那里了.应加什么判断呀.
reads = dis.read(buff,offset,len);
}
catch(Exception e)
{
System.out.println("Exception:"+e);
}
return reads;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货