gpt4 book ai didi

Java TCP 流终止

转载 作者:行者123 更新时间:2023-12-02 08:33:14 26 4
gpt4 key购买 nike

我正在尝试从 TCP 流中读取客户端发送的消息。事情是在读完最后一行后,我的 readline 函数没有返回 null,我无法调试原因,因为控制点丢失了。简而言之,在读取最后一行后,readLine 函数应该返回 null,但我没有得到任何这样的东西。

这就是我的代码的样子

        StringBuffer sipBuffer = null;
String lineRead = null;
readIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
try {
sipBuffer = new StringBuffer();
while ((lineRead = readIn.readLine()) != null) {
sipBuffer.append(lineRead);

sipBuffer.append("\n");
}
} catch (Exception ex) {
sipConsole.addText("Error in message: \n");
sipConsole.addText(ex.getMessage());
return;
}

消息格式为

    String inviteReq = "INVITE sip:" + destIP + "@sip.umsy.edu SIP/2.0" + "\n"
+ "From: \"" + myName + "\" <sip:" + myIP + "@sip.umsy.edu>" + "\n"
+ "To: <sip:" + destIP + "@sip.umsy.edu>" + "\n"
+ "Allow: INVITE, ACK, BYE" + "\r\n";

最佳答案

客户端是否关闭了正在写入的流?如果没有,您的 readLine() 将阻止来自客户端的更多数据。客户端-服务器协议(protocol)通常建立一种机制(除了流关闭之外)来指示大小。无论是内容长度还是通过特殊 token 。

关于Java TCP 流终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2716600/

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