当前位置:  技术问答>java相关

求助socket超时控制编程的问题(java)!!!!急急!!!!

    来源: 互联网  发布时间:2015-07-19

    本文导语:  在用socket编程时,我给对方发送一个数据包后,等对方给我回发一个数据包,但如果在规定时间内(20秒),我没有收到对方的响应,则我需重发我刚才发的数据包,但问题时我不知道怎样控制等待时间? 。。。 Input...

在用socket编程时,我给对方发送一个数据包后,等对方给我回发一个数据包,但如果在规定时间内(20秒),我没有收到对方的响应,则我需重发我刚才发的数据包,但问题时我不知道怎样控制等待时间?
。。。
Inputstream ips;
DataInputstream disp
Outstream ops;
DataOutputstream dops;
...
socket1=new socket("11.1.1.1",12099);
..
public void send()
{
   byte[] s={1,1,1};
   ops=socket1.getOutputstream();
   dops=new DataOutputstream(ops);
   dops.write(s);  
}

public byte[] receive()
{
   ips=socket1.getInputstream();
   dips=new DataInputstream(ips);
   byte[] r=dips.read(ips);
   return r;
}

public main_run()
{
    //发送数据
    send();
 
    //接收数据
    byte[] x=receive();
    //我在这里怎样知道和控制receive()执行时间超过20秒后我就重新send()呢?


}


急急急!!!!!!!!!!!!!!!!!!!!!!!

|
对Socket设置Sotimeout参数,用Socket.setSotimeout(int i);
注意捕获InterruptedException 异常。
例如:

socket1.setSotimeout(20000);//20seconds
ips=socket1.getInputstream();
dips=new DataInputstream(ips);  

建议输入输出流放到send(),receive方法外面去定义

byte[] r= new byte[1024];//定义一个接收缓冲字节数组

同时修改你的receive()方法

public byte[] receive() throws InterruptedException 
{
   try{
dips.read(r);

}
catch(InterruptedException ie){ throw new InterruptedException("read out of time");}
}
使这个方法抛出InterruptedException

在main()里可以起一个while(true){}
在try块里捕获InterruptedException,如果捕获到,就是读超时,在做相应处理

|
如果捕捉到InterruptedException 这个异常说明对方没有写数据过来,这样你就可以把进行其它处理了
try{
socket1.setSotimeout(20000);//20seconds
ips=socket1.getInputstream();
dips=new DataInputstream(ips);  

}
catch(InterruptedException ie)
{
//在此调用再次写数据操作 
;}
}

    
 
 

您可能感兴趣的文章:

  • 求助:关于单线程recv时的超时问题
  • 求助!ntp协议客户端实现时,select超时
  • 求助:linux/unix网络编程
  • 紧急求助java多线程编程!!!!!!!!!!!!!
  • 求助linux下的网络编程问题
  • 新手求助KDE编程起步
  • 我的linux下无法进行console图形编程,求助!!!
  • [高分求助]------如何在linux下编程实现录音
  • linux下图形编程入门求助
  • 求助:谁有KDevelop编程的中文介绍?
  • 求助:在模块编程下,如何进行debug??
  • 在Linux的Eclipse中用C语言编程,求助
  • Solaris下编程求助
  • 大侠,求助!!LINUX下TCP套接字编程中客户端出现段错误
  • 求助!!linux下socket编程
  • [求助]请问socket编程中send()函数可以发送整形数据吗?
  • 求助shell编程
  • 关于windows xp下的jdk编程的问题!(高分求助!!)
  • 求助ftp编程高手一个问题----有关免费包libftp-5.0
  • 求助:如何在linux下编程检测网线被拔掉?
  • 求助:Linux下线程编程的问题~~~~~~~~~~~~~~~~~~~`
  • ftp port方式编程求助
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • QT中关于方向键控制焦点的问题(求助)
  • 求助!如何控制被随机使用的端口号的大小?
  • 求助JTextArea控件对行数的控制办法!!!
  • 求助:32位机子里写的进程控制,网络通讯等程序在64位的机子里能否正常运行?
  • [求助]vi文本中的颜色控制
  • 100分,高分求助:用ftp server上传和下载文件如何控制路径??
  • 求助有关文件批量改名的控制命令。 。。。。
  • 100分急求助linux 下如何调用api来控制软件的读入数据的方式?面试的题,在线等!帮帮小弟忙呀!
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3