【问题标题】:Is it possible to put a delay on BufferedReader reading from socket是否可以延迟从套接字读取的 BufferedReader
【发布时间】:2013-11-25 23:51:45
【问题描述】:

我想知道在从套接字读取数据包时,是否可以延迟缓冲读取器读取数据包的频率。目前有一台服务器通过本地主机将数据流式传输到客户端,客户端读取数据并将其拆分。我希望不要连续读取数据,而是希望每 1/2 秒读取一个数据包。以下是我目前拥有的代码:

BufferedReader 的设置:

`

Socket clientSocket = new Socket("localhost", 1240);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

'

这部分代码是读取数据包的地方:

while (true)    
{

   String line = inFromServer.readLine();

   if (line != null){

      String[] packetData = line.split(",");

      if (packetData.length == 5)
      {
    x = Double.parseDouble(packetData[1]);
        y = Double.parseDouble(packetData[2]);
        z = Double.parseDouble(packetData[3]);
      }
   }
}

如果有人能在这方面给我帮助,将不胜感激。谢谢。丹尼尔

【问题讨论】:

  • 也许在读取和处理每一行之后将 0.5 秒的延迟放入循环中,然后呢?
  • 如果line == null你必须跳出这个循环。

标签: java sockets delay bufferedreader


【解决方案1】:

也许在读取和处理每一行之后将 500 毫秒的延迟放入循环中,然后呢?见Thread.sleep()

见:

【讨论】:

  • 谢谢你,我今天就试试看。
【解决方案2】:

您真的关心数据包(低级网络的东西)还是只对每 0.5 秒限制为 1 行感兴趣。在后一种情况下,只需将 Thread.sleep(500) 放在 while 循环中。

【讨论】:

    猜你喜欢
    • 2020-02-07
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2019-04-04
    • 2013-06-21
    相关资源
    最近更新 更多