Question

En Java, ce qui serait la meilleure façon à avoir une écoute constante d'ouverture de port, et toujours envoyer lors de la réception d'un paquet.Je ne suis pas particulièrement calée avec la programmation réseau en ce moment, donc les tutoriels que j'ai trouvé sur le net ne sont pas particulièrement utiles.

Serait-il judicieux d'avoir la socket d'écoute comme un serversocket et l'exécuter dans un thread séparé pour le support que j'utilise pour envoyer des données au serveur?

Dans un vaguement liés question.Personne ne sait si la programmation simplement pour java, dans netbeans, puis de les exporter pour les utiliser sur un blackberry (à l'aide d'un plugin) les prises de courant fonctionne encore ?

Était-ce utile?

La solution

Si vous pouvez vous permettre l'enfilage, essayez ceci (gardez à l'esprit que j'ai laissé de côté certains détails comme la gestion des exceptions et jouer gentil avec les threads).Vous voudrez peut-être chercher dans SocketChannels et/ou NIO async sockets / sélecteurs.Cela devrait vous aider à démarrer.

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
}

Autres conseils

Comme pour la connexion à un Blackberry, c'est problématique car, dans la plupart des cas, le Blackberry n'ont pas une adresse IP publique et au lieu d'être derrière une passerelle WAP ou le fournisseur de services sans fil point d'accès serveur.RIM fournit le Mobile sur le Serveur de Données (MDS) pour contourner ce problème et de fournir de "Pousser" les données qui utilise ServerSocket sémantique sur le Blackberry.Le MDS est disponible avec le Serveur Blackberry Enterprise server (BES) et de les Unir Serveur.

Une fois mis en place les données peuvent être envoyées à une unité donnée par le MDS en utilisant le protocole HTTP.Il est une excellente description de la Pousser protocole ici avec une LAMPE de code source.Le paramètre PORT=7874 dans pushout.pl se connecte à la Blackberry de Push Navigateur de serveur de socket.En changeant ce paramètre la charge utile peut être envoyé à un port arbitraire où votre propre ServerSocket accepter des connexions.

Si votre socket code a exécuter sur un BlackBerry, vous ne pouvez pas utiliser la norme Java sockets.Vous devez utiliser le J2ME Connecteur.API ouverte pour la création de deux types de sockets (ceux qui établissent des connexions à partir de la boutique BlackBerry, et ceux qui écoutent les connexions/pousse sur le BlackBerry).Regardez les exemples qui viennent avec la JANTE de la JDE.

J'avais besoin de revenir à l'essentiel pour celui-là aussi.Je le recommande O'Reilly est excellent Java in a Nutshell qui contient des exemples de code pour un exemple (disponible en ligne ainsi).Voir le Chapitre 7 pour une assez bonne vue d'ensemble des décisions que vous voulez le faire dès le début.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top