gpt4 book ai didi

java - java util 扫描器超时?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:12:56 26 4
gpt4 key购买 nike

我有以下问题,我的应用程序中有一个简单的 TCP 类,它向设备发送消息以进行查询,然后设备以消息响应,但是没有任何描述的行尾字符,因为它来自串行转换器,在最初尝试使用 readline 函数并发现它在输出之前需要 eol 字符后,我尝试了扫描仪功能,它工作正常,除非设备出于某种原因不回复该请求,然后我的应用程序卡住,是否可以在扫描仪功能上设置超时,以便它随后断开连接并继续前进,或者是否有更好的方法来做到这一点?我的代码如下:

public String Send_TCP ( InetAddress IPAddress, int POrt, String InData) throws IOException
{

Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;

try {
socket = new Socket(IPAddress, POrt);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection");
System.exit(1);
}

BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
;

System.out.print("Connected, Sending:"+ InData);

out.println(InData);
System.out.println("Equals");
String str1 = new Scanner(in).useDelimiter(">").next() + ">";
System.out.println(str1);
System.out.println("Equals");
out.close();
in.close();
read.close();
socket.close();
return str1;
}
}

最佳答案

我不确定我是否正确理解了您的问题,但您可以在套接字上设置超时:socket.setSoTimeout(int timeout)。请参阅:javadoc

关于java - java util 扫描器超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11438624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com