Java 使用线程的数据报通道
我试图设计一个系统,其中有一个发送方和一个接收方,双方都可以发送和接收数据包。我为每个发送方和接收方使用2个数据报通道,并在每侧使用2个读取来处理该问题 从发送方到接收方发送数据工作正常,但当我在接收方接收到数据时,我想发送回确认,但是,我似乎无法在发送方接收数据。我的逻辑正确吗 下面是我的课程的分类: 螺纹类Java 使用线程的数据报通道,java,multithreading,runnable,datagram,Java,Multithreading,Runnable,Datagram,我试图设计一个系统,其中有一个发送方和一个接收方,双方都可以发送和接收数据包。我为每个发送方和接收方使用2个数据报通道,并在每侧使用2个读取来处理该问题 从发送方到接收方发送数据工作正常,但当我在接收方接收到数据时,我想发送回确认,但是,我似乎无法在发送方接收数据。我的逻辑正确吗 下面是我的课程的分类: 螺纹类 Thread t = new Thread(new Sender()) Thread t1 = new Thread(new Receiver()) t.start() t1.start
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
}
我认为您需要某种同步,以确保您的接收器已准备好接收消息。例如,您可以使用 在发送方中,您应该等待()并且接收方应该调用闩锁对象上的倒计时()。 尝试此操作,以确保您的接收者在发送消息时已准备好接收消息。如果这没有帮助,那么显示您的发送者和接收者代码