java - Java 和 Web 套接字中的 TimerTask

标签 java sockets timer timertask

我正在尝试使用 Java 的 DatagramSocketDatagramPacket 类编写一个基本的客户端服务器。我已经设置了基本代码,但我想要一种方法来定期从我的客户端向我的服务器发送 100 条消息,即 1 秒、2 秒或 5 秒。

基本上,我想要这样的东西:

while (count != 0)
sleep (1);
create message packet;
send message packet;
count--;

在 C 中有一个 sleep 方法,但我不确定如何在 java 中做到这一点。有人有什么建议吗?

最佳答案

您始终可以调用 Thread.sleep(),这在很大程度上等同于 C 中的 sleep 函数。但我建议您使用另一种方法来完成您的程序。看看 ScheduledThreadPoolExecutor类,它允许您安排一段代码定期运行:

Runnable myCommand = new Runnable() {
    public void run() {
        // Do some work
    }
};

ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(4);
// Execute the command every second = 1000 milliseconds
executor.scheduleAtFixedRate(myCommand, 0, 1000, TimeUnits.MILLISECONDS);

关于java - Java 和 Web 套接字中的 TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9155615/

相关文章:

java - BGS5T RS232 与 1 线传感器通信

java - 在 Mac 中安装 Oracle Jdeveloper 时出现安装错误。

c# - 套接字缓冲区大小 : pros and cons of bigger vs smaller

flash - 柔性 socket 连接

timer - 在线程组迭代之间添加延迟时间

java - 将对象添加到数组列表中可能存在逻辑问题

java - 自定义主体错误消息 - Spring boot REST

sockets - 使用 boost::asio async_read_some 的高 CPU 和内存消耗

java - Android CountDownTimer 类滞后于主线程

javascript - 在特定时间间隔后在 for 循环内执行 setTimeout