Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字-在没有inputstream的情况下检测网络断开_Java_Sockets_Networking_Push Notification_Apple Push Notifications - Fatal编程技术网

Java套接字-在没有inputstream的情况下检测网络断开

Java套接字-在没有inputstream的情况下检测网络断开,java,sockets,networking,push-notification,apple-push-notifications,Java,Sockets,Networking,Push Notification,Apple Push Notifications,我最近一直在编写java代码来向Apple推送通知服务器发送通知。我遇到的问题是,如果我创建了套接字,然后断开了与网络的连接。我在网上浏览了很多文章,大多数人建议使用以下方法: socket.setKeepAlive(false); socket.setSoTimeout(1000); 特别是“setSoTimeout”方法。但是javadoc声明setSoTimeout仅在从InputStream读取时抛出异常。但是苹果推送通知服务器从不将任何数据放在InputStream上,因此我无法从中

我最近一直在编写java代码来向Apple推送通知服务器发送通知。我遇到的问题是,如果我创建了套接字,然后断开了与网络的连接。我在网上浏览了很多文章,大多数人建议使用以下方法:

socket.setKeepAlive(false);
socket.setSoTimeout(1000);

特别是“setSoTimeout”方法。但是javadoc声明setSoTimeout仅在从InputStream读取时抛出异常。但是苹果推送通知服务器从不将任何数据放在InputStream上,因此我无法从中读取任何内容。是否有人对如何在不使用套接字输入流的情况下确定网络断开有任何建议?

只有在尝试从套接字写入或读取时,才能可靠地检测到套接字已断开连接。阅读更好,因为写作往往需要一段时间才能发现失败


服务器不需要为您写入任何内容来尝试读取它。如果您有一台从不写的服务器,您将不会读取任何内容或检测到故障。

当您尝试从套接字写入或读取时,您只能可靠地检测到套接字已断开连接。阅读更好,因为写作往往需要一段时间才能发现失败


服务器不需要为您写入任何内容来尝试读取它。如果您的服务器从不写,您将不会读取任何内容或检测到故障。

快速精确:如果您使用增强的通知格式,并且发生错误,APNS将在您的InputStream上返回数据。因此,您应该确保不会忽略InputStream


除非你是作为一个个人学习项目来做,否则你可能想看看这个交易,为你处理所有的沟通细节。与APNS进行可靠的通信比最初看起来要困难得多,尤其是当您涉及到各种模糊或未记录的详细信息的错误管理部分时。

快速精确:如果您使用增强的通知格式并且发生了一些错误,APNS将在您的输入流上返回数据。因此,您应该确保不会忽略InputStream

除非你是作为一个个人学习项目来做,否则你可能想看看这个交易,为你处理所有的沟通细节。与APNS进行可靠的通信比乍看起来要困难得多,尤其是当您涉及到错误管理部分时,其中涉及各种模糊或未记录的详细信息。

请参阅和。请参阅和。