Frage

In Java, was wäre der beste Weg, um eine ständig listening-port öffnen, und immer noch senden Sie nach Erhalt der Paket.Ich bin nicht besonders versiert mit Netzwerk-Programmierung im moment, so die tutorials, die ich gefunden habe im Netz nicht besonders hilfreich.

Würde es Sinn haben, den socket als einen serversocket und führen Sie es in einem separaten thread, um die Buchse, die ich verwende, um Daten an den server senden?

In einer lose miteinander verbundenen Frage.Weiß jemand, ob die Programmierung einfach für java in netbeans dann exportieren, die Sie zur Nutzung auf einem blackberry-Gerät (über ein plugin), die Steckdosen würde noch funktionieren ?

War es hilfreich?

Lösung

Wenn Sie sich das leisten können threading, versuchen Sie diese (beachten Sie, ich habe einige details wie die Ausnahmebehandlung und spielen schön mit Gewinde).Möchten Sie vielleicht zu schauen SocketChannels und/oder NIO async sockets / - Selektoren.Dies sollte Ihnen den Einstieg.

boolean finished = false;
int port = 10000;
ServerSocket server = new ServerSocket(port);

while (!finished) {
    // This will block until a connection is made
    Socket s = server.accept();
    // Spawn off some thread (or use a thread pool) to handle this socket
    // Server will continue to listen
}

Andere Tipps

Für den Anschluss an ein Blackberry, das ist problematisch, da in den meisten Fällen den Blackberry nicht über eine öffentliche IP-Adresse und stattdessen hinter einem WAP-gateway oder Mobilfunk-provider access point server.RIM bietet Mobile Data Server (MDS), um diese und stellen die "Push" - Daten, die verwendet ServerSocket Semantik auf dem Blackberry.Die MDS verfügbar ist, die mit der Blackberry Enterprise Server (BES) und der Unite-Server.

Einmal eingerichtet, können Daten gesendet werden für eine bestimmte Einheit über die MDS mithilfe des HTTP-Protokolls.Es gibt eine ausgezeichnete Beschreibung der Push-Protokoll hier mit-LAMPE-source-code.Der parameter PORT=7874 in pushout.pl Verbindung zum Blackberry-Browser-Push-server-socket.Durch ändern dieses Parameters den payload gesendet werden können, um einen beliebigen port, wo Ihre eigenen ServerSocket-verbindungen akzeptieren.

Wenn Ihr socket-code laufen auf einem BlackBerry-Gerät, Sie können nicht mit standard-Java-sockets.Verwenden Sie den J2ME-Anschluss.offene API für die Erstellung beider Arten von Steckdosen (diejenigen, die verbindungen von BlackBerry, und diejenigen, die auf verbindungen lauschen/drückt auf dem BlackBerry -).Haben Sie einen Blick auf die Beispiele, die kommen mit RIM JDE.

Ich würde gehen müssen zurück zu den Grundlagen für diese ein.Ich würde empfehlen, O 'Reilly' s ausgezeichnete Java in a Nutshell enthält code-Beispiele für genau so ein Fall (erhältlich online wie gut).Siehe Kapitel 7 für einen ziemlich guten überblick über die Entscheidungen, die Sie würde wollen zu früh auf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top