请问用这句话(红色标注出)的效果

sc.setSocketOption(SocketConnection.LINGER, 5);
打开socket连接了,设置这个flag!
请问有什么效果!


请大家看下面的代码:
len = is.read(gData);
这句代码会阻塞在这里,用了上面红色标出的代码后,能不能实现,超过5秒没反应后,read就不阻塞,而向下执行代码!
谢谢!





try 
{
int len = 0;
    sc = (SocketConnection) Connector.open("socket://100.42.25.3:885");
    is = sc.openInputStream();
    os = sc.openOutputStream();
    sc.setSocketOption(SocketConnection.LINGER, 5);
    pmm.gDataBuf = null;
    sender = new Sender(os);
    sender.send(pmm.gStringReq);
    // Loop forever, receiving data
    gData = new byte[pmm.BUF_LENGTH];
    currentIndex = 0;
    gBuf = new byte[50*1024];
    while (!pmm.bStopConnect) 
    {
len = is.read(gData);
     System.arraycopy(gData,0,gBuf,currentIndex,len);
     currentIndex += len;
     if(currentIndex > 300){
     if(newVerifyXml()){
     if((currentIndex%8) != 0){
     int left = 8 - currentIndex%8;
     byte[] byteTmp = new byte[left];
     is.read(byteTmp);
}
     opHandle();currentIndex=0;
     }
     }
    }
    stop();
 } catch (ConnectionNotFoundException cnfe) {
    Alert a = new Alert("错误", "无法连接服务器", null, AlertType.ERROR);
    a.setTimeout(Alert.FOREVER);
    display.setCurrent(a) ;
} catch (IOException ioe) {
    if (!stop) {
ioe.printStackTrace();
    }
} catch (Exception e) {
    e.printStackTrace();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值