怎样关闭运行中的Socket?

weilinwu 2002-01-17 05:21:04
一个ServerSocket负责监听,把连接进来的客户Socket放到一个vector中;
有数个负责处理客户Socket的线程,从vector中取出Socket进行处理。

问,怎样关闭监听的ServerSocket和客户连接进来的Socket呢?
...全文
193 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weilinwu 2002-01-18
  • 打赏
  • 举报
回复
期待帮助中……
weilinwu 2002-01-18
  • 打赏
  • 举报
回复
求救啊!!!!!!!!!!!!!!!!!!!!
weilinwu 2002-01-18
  • 打赏
  • 举报
回复
不行,我使用如下方法关闭的时候,出现死循环错误:
tmp_len = SocketQueue.size(); (SocketQueue是存放连接客户端Socket的Vector)
Socket tmp_socket = null;
for (int j=0; j<tmp_len; j++) {
tmp_socket = (Socket)SocketQueue.get(j);
tmp_socket.close();
}

if (ListenSocket != null) {
ListenSocket.close(); (ListenSocket是服务器端的监听ServerSocket)
}

死循环错误:
java.net.SocketException: socket closed

at java.net.PlainSocketImpl.socketAccept(Native Method)

at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:424)

at java.net.ServerSocket.implAccept(ServerSocket.java:246)

at java.net.ServerSocket.accept(ServerSocket.java:225)

at com.*(Connect.java:175)

Connect.java 175行是:ConnectSocket=ListenSocket.accept();

如果先关闭监听的ListenSocket,在关闭连接客户端的Socket,错误依旧!请高寿明示!
oldcat0076 2002-01-18
  • 打赏
  • 举报
回复
你只要关闭ListenSocket就可以
bread213 2002-01-17
  • 打赏
  • 举报
回复
用你定义的ServerSocket,Socket的句柄。
ServerSocket server=new ServerSocket();
Socket client=new Socket();
client.close();
server.close();
dongzi7945 2002-01-17
  • 打赏
  • 举报
回复
用socket.close();即可!1

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧