java socket编程 客户端怎么断开socket
一个很BC的问题,我用java做socket编程的过程中,客户端怎么主动断开socket?InputStream.read()一直让客户端socket处于阻塞状态...补...
一个很BC的问题,我用java做socket编程的过程中,客户端怎么主动断开socket?
InputStream.read()一直让客户端socket处于阻塞状态...
补充:我是想用一个线程实现socket通信,需要时启动线程,连接socket通信;不需要时结束线程,释放socket连接。
现在我想关闭线程,可是inputstream.read()一直阻塞,线程停止不了。。。
或者大家有没有什么好的方法?我想实现用一个线程来管理socket的收发数据以及断线重连等情况,有没有什么较好的方法? 展开
InputStream.read()一直让客户端socket处于阻塞状态...
补充:我是想用一个线程实现socket通信,需要时启动线程,连接socket通信;不需要时结束线程,释放socket连接。
现在我想关闭线程,可是inputstream.read()一直阻塞,线程停止不了。。。
或者大家有没有什么好的方法?我想实现用一个线程来管理socket的收发数据以及断线重连等情况,有没有什么较好的方法? 展开
4个回答
展开全部
你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了,
又或者通过System.exit(0)关掉当前客户端线程。
当然,你也可以直接通过工具直接把客户端关了。
又或者通过System.exit(0)关掉当前客户端线程。
当然,你也可以直接通过工具直接把客户端关了。
更多追问追答
追问
你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了
---->问题是你用方法关闭流了,但是inputstream.read()还在那里阻塞着,也就是没有真正的关闭啊。
system.exit(0)
---->这个方法不行,这样会把所有的都强制关闭,我只想关闭socket,想发送数据的时候还可以继续创建新的连接。
追答
你说得InputStream.read()一直让客户端socket处于阻塞状态...是指在服务器端的执行的InputStream.read()一直让客户端socket处于阻塞状态么?
展开全部
请问楼主,socket.shutdownInput()这段代码要放在什么地方执行啊,我是初学者 过来学习一下
更多追问追答
追问
你什么时候不需要socket连接了,需要结束了,执行socket.shutdownInput()就行。
追答
这是一条单独执行语句吗? 我的意思是程序是while(true)的 ,现在 要把这段代码 放到程序的什么地方
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
socket.close()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询