首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么套接字在运行时不能关闭?

为什么套接字在运行时不能关闭?
EN

Stack Overflow用户
提问于 2015-04-23 13:43:18
回答 2查看 655关注 0票数 3

在Android应用程序中,我将这段代码添加到onCreate()

代码语言:javascript
复制
    Closeable sss = new Socket();
    if (!(sss instanceof Closeable)) {
        throw new RuntimeException("Something unexpected happened");
    }

进口产品如下:

代码语言:javascript
复制
import java.io.Closeable;
import java.net.Socket;

代码会编译,但我得到了例外情况:

代码语言:javascript
复制
E/AndroidRuntime( 8293): java.lang.RuntimeException: Unable to start activity...: java.lang.RuntimeException: Something unexpected happened
...
E/AndroidRuntime( 8293): Caused by: java.lang.RuntimeException: Something unexpected happened
...

在不同的上下文中,故障会导致java.lang.ArrayStoreException (即java.lang.ArrayStoreException: java.net.Socket不能存储在类型为java.io.Closeable[]的数组中)。

我是不是遗漏了什么?知道该怎么做吗?

编辑类似地,当DatagramSocket用作MyClass<T extends Closeable>MyClass<DatagramSocket>时,它会导致java.lang.IncompatibleClassChangeError:接口未实现。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-23 13:58:22

此问题发生在19岁之前的Android级别上。在受影响的版本上,套接字不能实现关闭。

资料来源:

票数 4
EN

Stack Overflow用户

发布于 2015-04-23 13:47:05

套接字本身是不可关闭的,但它的两个流都是。而关闭任何一个流都会关闭套接字。

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

https://stackoverflow.com/questions/29825330

复制
相关文章

相似问题

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