首页 新闻 会员 周边 捐助

java socket 长连接问题 急急急

0
悬赏园豆:40 [已关闭问题] 关闭于 2016-01-05 14:51

我的服务端代码

ServerSocket server = null;
        try {
            server = new java.net.ServerSocket(2002);
            System.out.println("Server Create Ok");
            System.out.println("waiting client connecting...");
            while (true) {
                try {
                    Socket socket = server.accept();
                    socket.setKeepAlive(true);
                    
                    //将线程加入到线程池,执行处理方法
                    if (socket != null) {
                        MyServerSocket clientSocket = new MyServerSocket(); // getClientMessage
                        clientSocket.setSocket(socket);
                        // Thread thread = new Thread(clientSocket);
                        pool.execute(clientSocket);
                    }
                } catch (IOException e) {
                    System.out.println("CreateSecondPort  .............");
                    e.printStackTrace();
                }
            }
        } catch (IOException e) {
            System.out.println("Address already in use!");
        } finally {
            if (server != null) {
                try {
                    server.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

客户端是客户的设备,我这边控制不到,在他们的服务器上已经实现了长连接,我这边当客户端数据发送完之后,空闲一分钟左右就自动断开了,捕获到 socket is closed 异常,另外客户端是有心跳检测的,不过他们的心跳检测设置的比较长是5分钟,有时候能够收到心跳包,我这边也回复了客户端。

  请大神指点下我改怎么处理

小小鸟努力飞翔的主页 小小鸟努力飞翔 | 初学一级 | 园豆:34
提问于:2015-03-31 17:27
< >
分享
所有回答(2)
0

怎么没有人回复呢

小小鸟努力飞翔 | 园豆:34 (初学一级) | 2015-04-01 18:22
0

当客户端退出后把流关闭,当前客户端也关掉,服务器不要关闭,当然线程也要关闭。

猿哥爱码 | 园豆:258 (菜鸟二级) | 2015-08-27 19:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册