首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DatagramSocket.receive()失败,出现意外的SocketException

DatagramSocket.receive()失败,出现意外的SocketException
EN

Stack Overflow用户
提问于 2010-12-17 01:20:14
回答 2查看 1.8K关注 0票数 4

对于未连接和绑定的DatagramSocket,接收方法调用(禁用SO_TIMEOUT )意外失败,出现以下异常。

代码语言:javascript
复制
java.net.SocketException: socket closed  
 at java.net.PlainDatagramSocketImpl.receive0(Native Method)  
 at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)  
 at java.net.DatagramSocket.receive(DatagramSocket.java:712)

另外,我还没有显式地关闭套接字。

此错误发生在带有JRE-6的Windows Server 2008中。

即使在调用DatagramSocket.close()时,在同一套接字地址重新创建新的DatagramSocket也会失败。

您能告诉我这个错误的可能原因吗?

EN

回答 2

Stack Overflow用户

发布于 2011-06-01 19:00:40

我也遇到过同样的问题。

检查套接字的"closed“和"connectState”字段。

代码语言:javascript
复制
/*
 * Connection state:
 * ST_NOT_CONNECTED = socket not connected
 * ST_CONNECTED = socket connected
 * ST_CONNECTED_NO_IMPL = socket connected but not at impl level
 */
static final int ST_NOT_CONNECTED = 0;
static final int ST_CONNECTED = 1;
static final int ST_CONNECTED_NO_IMPL = 2;
票数 1
EN

Stack Overflow用户

发布于 2010-12-17 09:59:49

java.net.SocketException:套接字已关闭

这意味着您已经关闭了套接字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4463556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档