关于通讯socket发送完消息后关闭问题

passwordException 2017-02-22 06:54:01
贴代码:
while(true){
Socket socket=serverSocket.accept();
userMap.put("xx",socket);
PrintWriter out1 = new PrintWriter(new BufferedWriter(new OutputStreamWriter(((Socket)(MessageServer.userMap.get("xx"))).getOutputStream())),true);
out1.print("user login again\n");
out1.flush();
((Socket)userMap.get("xx")).close();
userMap.remove("xx");
........................................
}

代码如图所示,先发送了一个消息 user login again,随后就把这个socket关闭了。这个过程不报错,但是CPU使用率会上升很多,而且不会降,除非重启服务器。我想问问大神们这是什么问题,怎么会这样呢,如何让CPU使用率不上升啊。弄了一天了,是在没办法了,跪求
...全文
424 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiajing1990_ 2017-02-24
  • 打赏
  • 举报
回复
socket关闭后还要释放资源才行的 比如dispose
jiajing1990_ 2017-02-24
  • 打赏
  • 举报
回复
out1.flush();并不代表关闭的诶
passwordException 2017-02-23
  • 打赏
  • 举报
回复
已解决,关闭之前加了一个shutdown输入流,shutdown输出流
passwordException 2017-02-23
  • 打赏
  • 举报
回复
开了一个线程 在线程里执行也会这样 到底怎么回事啊T_T 自己顶一下...

62,614

社区成员

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

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