gpt4 book ai didi

java - 数据报 channel 与线程一起工作

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:20 29 4
gpt4 key购买 nike

我正在尝试设计一个系统,其中有发送方和接收方,双方都可以发送和接收数据包。我为每个发送方和接收方使用 2 个数据报 channel ,并在每一侧使用 2 个线程来处理该问题。

从发送者向接收者发送数据工作正常,但是当我在接收者端收到该数据时,我想发回确认,但我似乎无法在发送者端接收。我的逻辑看起来正确吗?

这是我的类(class)的详细信息:

线程类

Thread t = new Thread(new Sender())
Thread t1 = new Thread(new Receiver())
t.start()
t1.start();

发送者类别

Sender implements Runnable{
//open channel
//connect to address
//send over data in run method
}

Sender ACK class{
//open channel
//connect
//retrieve and get data received (WAITS For incoming data but data has already been sent)
}

接收器类

Receiver implements Runnable{
//open channel
//bind
//Print out data received
//send ack
}

Receiver ACK class{
//open channel
//connect
//send ack method
//send out data
}

最佳答案

我认为您需要某种同步来确保您的接收者准备好接收消息。例如,您可以使用 CountDownLatch

在发送方中,您应该await(),接收方应该在闩锁对象上调用countDown()。尝试此操作以确保您的接收器在发送消息时已准备好接收消息。如果这没有帮助,请显示您的发件人和收件人代码。

关于java - 数据报 channel 与线程一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942402/

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