首页 \ 问答 \ 如何知道Java Socket已经死了(how to know a Java Socket is dead)

如何知道Java Socket已经死了(how to know a Java Socket is dead)

我在客户端应用程序中使用Java Socket对象。 我需要知道服务器的线路何时断开,或者是否有任何事件导致套接字死机。

我看到两种方法:

  • 在写入或读取套接字时捕获SocketException,考虑到这些异常会终止套接字
  • 捕获这些异常时,检查Socket.isClosed()方法以确定它是否杀死了套接字

这些方法中的任何一种都能保证我知道套接字何时死机并且不会再次工作,即使线路上的临时问题已经解决了吗? 我们可以除了在套接字上的操作期间抛出的(Socket)异常暗示套接字已经死了吗?

知道这个有更好的方法吗?


I use a Java Socket object in my client application. I need to know when the line to the server is broken, or if any event caused the socket to be dead.

I see two methods:

  • catching SocketException when writing in or reading from the socket, considering these exceptions kill the socket
  • when catching these exceptions, checking the Socket.isClosed() method to know if it killed the socket

Does any of these methods guarantee I'll know when the socket is dead and won't work again, even if a temporary problem on the line is solved? Can we except a (Socket)Exception thrown during an operation on a socket to imply the socket is dead?

Is there a better method to know this?


原文:https://stackoverflow.com/questions/2055650
更新时间:2023-11-01 13:11

最满意答案

您的代码中有2个粘贴操作。 你知道的一个:

WshtCrnt.Paste

以及属于此范围复制声明的一部分:

。 。 使用WshtSht1 .Range(.Cells(1,1),。Cell(RowSht1DataFirst - 1,ColSht1LastHdr))。Copy_ Destination:= WshtCrnt.Range(“A1”)。 。

通过指定“目的地”,您要求复制并粘贴您的范围。


You have 2 paste operations in your code. One that you know of:

WshtCrnt.Paste

and one that is part of this range copy statement:

. . With WshtSht1 .Range(.Cells(1, 1), .Cells(RowSht1DataFirst - 1, ColSht1LastHdr)).Copy_ Destination:=WshtCrnt.Range("A1") . .

By specifying a "Destination" you are requesting a copy AND paste of your range.

相关问答

更多

相关文章

更多

最新问答

更多
  • 以编程方式创建视频?(Create videos programmatically?)
  • 为什么开机慢上面还显示;Inetrnet,Explorer
  • javascript数组,如何改变这个数组结构(javascript arrays, how to change this array structure)
  • 在ASP.NET Web API中使用多个Get方法进行路由(Routing with multiple Get methods in ASP.NET Web API)
  • 用于backbone.js验证的自定义验证器(Custom validator for backbone.js validation)
  • const char *与其他指针有什么不同?(Is const char * different from other pointers? [duplicate])
  • 无效的列索引,使用PreparedStatement更新(Invalid column index , update using PreparedStatement)
  • watchOS WCSession'已配对'和'watchAppAvailable'不可用(watchOS WCSession 'paired' and 'watchAppAvailable' are unavailable)
  • CalledFromWrongThreadException在Android上执行JUnit测试(CalledFromWrongThreadException exercising JUnit tests on Android)
  • 如何把文件保存到你的应用程序目录中?(How to put\save files into your application directory? (adobe air))
  • 美元符号在Java方法描述符中的含义?(Meanings of dollar sign in Java method descriptor?)
  • font-size的含义是什么:1em / 2em?(What doe the meaning of font-size:1em/2em?)
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • Android - 检测与特定wifi ssid断开连接的正确方法?(Android - Correct way to detect disconnecting from a particular wifi ssid?)
  • 通过Shell脚本将文件转换为另一个文件(Convert File To Another File By Shell Script)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • 如何过滤magento废弃的购物车报告集合(How to Filter the magento abandoned cart report collection)
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • web api http post传递对象504接收失败(web api http post passing object 504 Receive Failure)
  • Rails从视图编辑模型上的多个属性的方法(Rails way to edit multiple attributes on a model from a view)
  • 总是用{}初始化对象是否是好习惯?(Is it good habit to always initialize objects with {}?)
  • 在方案中编写特殊字符到输出端口(编译器设计)(writing special characters to output port in scheme (compiler design))
  • 电脑等级考试得证有多大用处?
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • 第一次调用函数将无法按预期工作,但下一次工作正常(calling a function on the first time won't work as expected, but next time is working)
  • 如何优化使用BigInteger操作执行时间的代码(How to optimize the code that uses BigInteger operations for execution time)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何提供个人资料信息,以便Passport.js可以使用它?(how does Profile information should be provided so Passport.js can use it?)
  • 有没有办法初始化jquery数据表中的细节?(is there any way to initialize details in jquery datatable?)