722 comms.destroy(); |
731 comms.destroy(); |
723 server.destroy(); |
732 server.destroy(); |
724 } |
733 } |
725 } |
734 } |
726 |
735 |
|
736 public void testServerAndTwoClients() |
|
737 { |
|
738 System.out.println("TestCommsServerEndpoint.testServerAndTwoClients()"); |
|
739 |
|
740 class RouterListener implements CommsListener |
|
741 { |
|
742 CommsEndpointBase iComms; |
|
743 CommsMessage iFirstMessage; |
|
744 |
|
745 public RouterListener(CommsEndpointBase aComms) |
|
746 { |
|
747 iComms = aComms; |
|
748 } |
|
749 |
|
750 public void processMessage(CommsMessage aMessage) |
|
751 { |
|
752 if (iFirstMessage == null) |
|
753 { |
|
754 // delay reply until second message is received |
|
755 iFirstMessage = aMessage; |
|
756 } |
|
757 else |
|
758 { |
|
759 // reply to first client |
|
760 CommsMessage reply = new CommsMessage(); |
|
761 reply.replyTo(iFirstMessage); |
|
762 iComms.send(reply); |
|
763 |
|
764 // reply to second client |
|
765 reply.replyTo(aMessage); |
|
766 iComms.send(reply); |
|
767 } |
|
768 } |
|
769 } |
|
770 |
|
771 class SendReceiver extends Thread |
|
772 { |
|
773 public void run() |
|
774 { |
|
775 try |
|
776 { |
|
777 CommsEndpoint client = new CommsEndpoint(); |
|
778 client.connect(SERVER_ADDRESS); |
|
779 CommsMessage reply = client.sendReceive(new CommsMessage(), CommsEndpoint.WAIT_FOR_EVER); |
|
780 client.disconnect(); |
|
781 client.destroy(); |
|
782 } |
|
783 catch (Exception e) |
|
784 { |
|
785 e.printStackTrace(); |
|
786 fail("SendReceiver.run"); |
|
787 } |
|
788 } |
|
789 } |
|
790 |
|
791 CommsServerEndpoint server = null; |
|
792 try |
|
793 { |
|
794 server = new CommsServerEndpoint(); |
|
795 RouterListener listener = new RouterListener(server); |
|
796 server.registerDefaultListener(listener); |
|
797 server.start(SERVER_ADDRESS); |
|
798 |
|
799 SendReceiver client1 = new SendReceiver(); |
|
800 SendReceiver client2 = new SendReceiver(); |
|
801 |
|
802 client1.start(); |
|
803 client2.start(); |
|
804 client1.join(); |
|
805 client2.join(); |
|
806 |
|
807 server.stop(); |
|
808 } |
|
809 catch (Exception e) |
|
810 { |
|
811 e.printStackTrace(); |
|
812 fail("testServerAndTwoClients failed"); |
|
813 } |
|
814 finally |
|
815 { |
|
816 server.destroy(); |
|
817 } |
|
818 } |
727 |
819 |
728 |
820 |
729 } |
821 } |
730 |
822 |