2016-03-28 18 views
-1

Ich habe ein Klassenbibliotheksprojekt "Kommunikation" erstellt, das für die Kommunikation mit UDP-Socket-Programmierung dient.Java-Socket-Programmierung Rückruf

Diese Kommunikation wird von der Anwendung aufgerufen und Kommunikation wie immer geöffnet und bereit, Thread zu akzeptieren.

Wann immer Daten gesendet werden müssen, da Application das Kommunikationsobjekt hat, ist es einfach und leicht zugänglich.

Aber wenn Daten empfangen werden, möchte ich, dass Daten an die Anwendung gesendet werden.

siehe Bild unten.

Wie erreichen? Delegierte?

Query Img

Antwort

1

eine Schnittstelle Stellen wie folgt aus:

interface Notifyable { 
    void notify(DatagramPacket p); 
} 

und lassen Sie Ihre Application implementieren.

Dann geben Sie Ihre Communication Klasse die Referenz auf Application und wann immer Sie Daten erhalten, rufen Sie die notify Methode.

+0

Hey du mein Problem gut verstanden, ich bin ein Neuling, können Sie pls sagen, wo Schnittstelle zu schreiben? und wo Klasse implementieren? –

+0

wo zu schreiben Schnittstelle? und wo Klasse implementieren? und wie man anruft –

0

UDP-Kommunikation soll das gleiche in beiden Richtungen arbeiten. Es gibt keinen asymmetrischen Client/Server oder Sender/Empfänger. Ihre "Bewerbung" und "Kommunikation" sollten auf die gleiche Weise funktionieren.

Beide können Nachrichten senden und beide können sie auf die gleiche Weise empfangen.

Mit anderen Worten, sollten Sie diesen Code geschrieben haben bereits auf der Listening-Seite, müssen Sie nur die gleiche Listening-Seite auf der „Application“

+0

Anwendung und Kommunikation sind Einzelprojekte, Anwendung verwendet Kommunikationsobjekte, um Daten über das Netzwerk zu senden, was ich jetzt brauche, ist eine Methode aufzurufen, die in Anwendung von Kommunikation ist –

+0

@ManojShenoy Ich nehme an, Sie haben einige Mittel, dies zu tun der Knoten "Kommunikation"? Was hält Sie davon ab, das gleiche auf dem Knoten "Application" zu tun? –

0

Was Sie beschreiben, passt perfekt in HTTP-Protokoll. In HTTP erhält der Server eine Anfrage und sendet eine Antwort an den Client. Wenn Sie also keine spezielle Anforderung für die Verwendung von UDP haben, gibt Ihnen das einfachste Servlet ein gewünschtes Verhalten - der Server ist immer verfügbar und beim Empfang einer HTTP-Anfrage würde Ihr Servlet eine Antwort senden. Also, lesen Sie einfach, wie Sie einen Webserver oder einen Anwendungsserver bekommen und erstellen Sie ein Servlet und Sie sind fertig. Der Einfachheit halber würde ich Apache Tomcat als Ihren Server empfehlen.