【发布时间】:2015-10-19 04:11:29
【问题描述】:
我正在编写一个连接到 Arduino 的 Java 套接字服务器,后者又发送和接收数据。正如 Java 套接字文档所示,我已将服务器设置为为每个连接打开一个新线程。
我的问题是,如何将数据从套接字线程发送到我的主线程?套接字将不断打开,因此必须在线程运行时发送数据。 有什么建议吗?
更新:服务器的目标是向 Arduino 发送命令(即打开或关闭灯)并从传感器接收数据,因此我需要一种方法从连接到各个线程的传感器获取数据并将它们发送到一个单一的。
【问题讨论】:
-
我建议包括一些您已经尝试过的东西 - 而不是简单地寻找解决方案。同样就您的问题而言-在线上有许多教程可以准确地找到您要寻找的内容。我看看能不能很快给你找到。
-
需要澄清一下。我没有明白什么是客户端,什么是服务器。
-
哪些数据需要共享(发送)到主线程?套接字线程将数据发送到它拥有的套接字,因此它不需要将数据发送到主线程即可将其发送到客户端。
-
我不是在尝试向客户端发送数据,而是在尝试将从每个套接字线程接收到的所有数据移到一个中。
-
您的描述中缺少某些内容。如果您不打算用它做某事,那么从传感器接收数据有什么用?你会怎样做?为什么必须在一个线程中完成?无论如何,假设您有充分的理由,为什么不使用阻塞队列?传感器线程可以接收来自传感器的数据,并产生消息并将它们塞入队列。主线程可以消费队列中的消息并对它们做任何事情。
标签: java multithreading sockets