我正在使用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();
}
}
}
}
暂无答案!
目前还没有任何答案,快来回答吧!