java socket编程 客户端怎么断开socket

一个很BC的问题,我用java做socket编程的过程中,客户端怎么主动断开socket?InputStream.read()一直让客户端socket处于阻塞状态...补... 一个很BC的问题,我用java做socket编程的过程中,客户端怎么主动断开socket?
InputStream.read()一直让客户端socket处于阻塞状态...
补充:我是想用一个线程实现socket通信,需要时启动线程,连接socket通信;不需要时结束线程,释放socket连接。
现在我想关闭线程,可是inputstream.read()一直阻塞,线程停止不了。。。

或者大家有没有什么好的方法?我想实现用一个线程来管理socket的收发数据以及断线重连等情况,有没有什么较好的方法?
展开
 我来答
a2159049
2011-08-04 · TA获得超过267个赞
知道答主
回答量:64
采纳率:0%
帮助的人:71.3万
展开全部
你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了,
又或者通过System.exit(0)关掉当前客户端线程。
当然,你也可以直接通过工具直接把客户端关了。
更多追问追答
追问
你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了
---->问题是你用方法关闭流了,但是inputstream.read()还在那里阻塞着,也就是没有真正的关闭啊。

system.exit(0)
---->这个方法不行,这样会把所有的都强制关闭,我只想关闭socket,想发送数据的时候还可以继续创建新的连接。
追答
你说得InputStream.read()一直让客户端socket处于阻塞状态...是指在服务器端的执行的InputStream.read()一直让客户端socket处于阻塞状态么?
kl1003505602
2012-09-03
知道答主
回答量:15
采纳率:0%
帮助的人:7.1万
展开全部
请问楼主,socket.shutdownInput()这段代码要放在什么地方执行啊,我是初学者 过来学习一下
更多追问追答
追问
你什么时候不需要socket连接了,需要结束了,执行socket.shutdownInput()就行。
追答
这是一条单独执行语句吗? 我的意思是程序是while(true)的  ,现在 要把这段代码 放到程序的什么地方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
naturelifei
2011-08-04 · 超过19用户采纳过TA的回答
知道答主
回答量:149
采纳率:0%
帮助的人:46.9万
展开全部
socket.close()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
英雄老马被注册
2011-08-04
知道答主
回答量:14
采纳率:0%
帮助的人:12万
展开全部
socket.close()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式