使用bufferedreader接收tcp数据包时超时

cnh2zyt3  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(347)

我正在使用bufferedreader读取客户端代码中特定端口上的tcp数据包。但我的问题是5000个包中有350个包在15分钟内超时。我在stackoverflow中检查了其他答案,但我的问题没有解决。
我如何克服这个超时问题以及为什么会发生。请帮我解决这个问题。下面是我读取数据包的客户端代码,程序是用java编写的。
注:数据包长度为30。

private void listen() throws Exception {
        ByteBuffer byteBuffer = null;
        DateTimeFormatter dtf = null;  
        LocalDateTime now = null;
        int cnt=0;
        String data = null;
        String[] res = null;
            String[] res1 = null;
            String clientAddress="";
        while(true){
        Socket client = this.server.accept();
        clientAddress = "";
        clientAddress = client.getInetAddress().getHostAddress();

        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); 
        byteBuffer = ByteBuffer.allocate( 10240 );
        while ( (data = in.readLine()) != null ) {
            try{
                dtf=DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
                now=LocalDateTime.now(); 
            System.out.println("\r\n"+dtf.format(now)+":: " + clientAddress + ": " + data);

            }catch(Exception s){
                s.printStackTrace();
            }
        }
        }

    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题