DataInputStream .read(byte[]) 阻塞方法 DataInputStream .read(byte[]) 阻塞方法怎么设置超时?如果我从流中读去数据,但是数据一直没有,但SOCKET一直是通的,导致程序一直阻塞在这里。我该怎么办 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果这个方法返回个-1,就说明没数据了,就不执行呢。加个条件就行。int i=DataInputStream object.read(byte[]);while(i==-1){return ;} 关键int i=DataInputStream object.read(byte[]); 它一直阻塞在这里,就根本没有向下执行呢 我想到一个办法,就是对socket进行超时public void setSoTimeout(int timeout) throws SocketException启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket 仍旧有效。选项必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。 如果这个方法返回个-1,就说明没数据了,就不执行呢。加个条件就行。 int i=DataInputStream object.read(byte[]); while(i==-1){ return ; } 发帖中怎么贴代码 java怎么生成距离相等的点 MyEclipse和jdk的相关问题!! 请问:List 和 Vector的区别 8990357高级技术群,刚刚踢掉80多个人 用awt做界面的问题。 请教各位同仁一个关于多线程的问题 为什么编译不过去? 请教关于线程的一个简单问题! 請問用Socket來實現SMTP的發送功能﹐它的流程是怎樣呢﹖謝謝﹗﹗ 里氏代换原则LSP的应用 Socket输入输出关闭顺序
int i=DataInputStream object.read(byte[]);
while(i==-1){
return ;
}
它一直阻塞在这里,就根本没有向下执行呢
public void setSoTimeout(int timeout)
throws SocketException启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket 仍旧有效。选项必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。
int i=DataInputStream object.read(byte[]);
while(i==-1){
return ;
}