发送数据到特定线程
问题描述:
我希望能够创建多个线程并根据主程序接收到的数据将数据发送到特定的线程。发送数据到特定线程
基本上我发送一个数据包到一个包含一个数字的接收程序。该号码用于确定要与哪个线程通信。我怎样才能将这个数据包发送到具有相同号码的线程?
示例:线程1,2,3,4和5存在。我的主程序收到一个数字为3的数据包。我想将该数据包发送到线程3.
我该如何实现这一目标?
答
为每个线程创建一个队列,并让每个线程监听该队列。然后,主线程可以在每个队列上放置数据(或“消息”)。
你只需要确保你选择的队列结构对于并发访问是安全的(线程安全的)。像LinkedBlockingQueue应该很好。
为什么不保持连接处于活动状态,然后将发送/接收的数据委托给包含该套接字的线程? –
我正在制作一个虚拟路由器(一个类项目),所以它需要像一个真正的路由器。所以我所做的这些线程都是作为我的路由器的不同端口。我们的数据包被发送到我们的程序正在监听的真实端口,然后我们的程序将它发送到虚拟端口(线程)。 –