我刚刚在同一个Node中开始使用客户端和服务器线程的套接字。下面是我的代码结构 -
我有一个Node类,可以连接到不同的节点。它将REQUEST消息发送到节点并等待,直到它从使用outstandingreplies变量跟踪的所有节点获得REPLY,该变量是静态和易失性的,同时具有同步的getter和setter。
服务器类产生处理器线程,该线程处理它听到的每条消息。 它修改了某些可以进一步促进代码执行的变量。在获取REPLY消息时,它会减少outstandingreplies变量。它还会向基于某些条件发送消息的节点发送消息。
以下是我的代码,我删除了某些细节。
节点类
{ }
我在两台机器上运行此代码。成功建立连接并交换一些消息。但是,在某些情况下,即使套接字仍然连接,Processor类也不会收到消息。
我确实对Java套接字丢失消息提出了一些问题,其中提到当节点一次获得两条消息时,它只处理第一条消息而第二条消息被缓冲。我不知道如何检查我的代码是否属于这种情况。
我猜测我处理套接字有问题。如果有人能指出我做错事的地方,真的会有所帮助。
TIA