Accueil > Forum > > > > Allocation de port de connexion dynamiquement
Allocation de port de connexion dynamiquement
jeudi 6 mai 2004 à 15:52:48 |
Allocation de port de connexion dynamiquement

linupat
|
Bonjour Je souhaite réaliser un serveur pouvant acceuillir une infinité de client (de l'ordre du résonnable). Les clients pouront interroger le serveur en m^me temps et disposeront chacun d'une connexion unique (port différant). Je sais quand langage on peut alloué des ports dynamiquement avec la commande bind(...), et je voudrais faire la même chose en Java..... Le problème est que je n'ai quasiment pas trouvé de doc ou exemple traitant de se sujet alors si quelqu'un peut m'expliquer comment on fait ou une doc faite moi signe
|
|
jeudi 6 mai 2004 à 16:05:14 |
Re : Allocation de port de connexion dynamiquement

safisoft
|
je X que dans une tel situation t'as pas besoin d'alouer à chaque client un port distint (c pas pratique du tout) mais tu peux les connecter tous sur le même port et créer pur chacun un process (Trhead) qui va communiquer avec lui. plusieurs port ne servirront en rien puisqu'il y a pas de vrais parallélisme. un port est assai suffisant pour le pseudo parallèlisme! Ok? sinon tu pourra generer à chaque fois un entier sur lequel tu vas créer ta ServerSocket, mais le client aussi doit conaitre cet entier avant qu'il soit connecté!! Je vois pa que c pratique!!
|
|
vendredi 7 mai 2004 à 07:51:49 |
explication

linupat
|
En langage C il est possible par l'intermédiaire de la commande bind d'avoir une allocation dynamique d'un port. Biensur il ya au début un port de connexion déterminé...... Je veux pas que mes clients dialogue sur le même port pour qu'il ne puisse pas voir à partir d'un client se que transmet un autre client............ SI non j'avais pensé à cette autre solution que tu propose......
|
|
vendredi 7 mai 2004 à 09:38:30 |
Re : Allocation de port de connexion dynamiquement

kirua12
|
En Java toutes les opérations qu'on doit faire en C (définition de la socket, bind ...) sont encapsulées dans la Socket. Tu as 2 solutions : soit tu crées autant de Socket que nécessaires chacune sur un port différent (c'est pénible, nombre limité de clients ...) soit tu crées une ServerSocket qui écoute sur un port et qui fait l'allocation dynamique (comportement habituel de tous les serveurs). C'est Java et l'OS qui se chargent de ça, tu ne peux rien spécifier sur les ports utilisés. Je pense que c'est la meilleure solution et c'est aussi la plus répandue
|
|
vendredi 7 mai 2004 à 11:27:00 |
si j'ai bien compris

linupat
|
il faut que je définise manuelle un port pour chacun de mes client. Ce qui veut dire que j'aurais un port qui me servira à rediriger mes client sur un port libre!!! il y a pas une fonction java qui s'occupe de la redirection de la connexion et qui m'affrnchie de tous ce protocol (si non je sais ce qu'il me reste à faire!!)???
|
|
vendredi 7 mai 2004 à 14:33:46 |
Re : Allocation de port de connexion dynamiquement

kirua12
|
Je comprends pas ton pb. Pourquoi veux tu définir manuellement un port différent pour chacun des clients ? La ServerSocket fait ce travail. Elle écoute sur un port et quand un client se connecte, crée une nouvelle socket sur un autre port.
|
|
vendredi 7 mai 2004 à 14:57:40 |
extrait du code

linuxpat
|
je te donne un extrait de mon code
1er class serveur /** * Thread de gestion des connexions. */ public void run() { //Comment Creation de la socket du serveur ServerSocket servSock = null; try { servSock = new ServerSocket(port); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //boucle infini while (true) { //on accepte toute les connexion Socket socket = null; try { socket = servSock.accept(); ///serv=socket; //System.out.println(socket+"\n"); //creation de l'objet connexion new Connexion(socket, this); } catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } } }
2eme class connexion /** * Constructeur de connexion. * @param sock socket de connexion. * @param serv serveur. */ public Connexion(Socket sock, Serveur serv){ try{ this.sock = sock; this.serv = serv; //Buffer d'entrée in = new BufferedReader(new InputStreamReader(sock.getInputStream())); //Buffer de sortie out = new PrintStream(sock.getOutputStream()); //Démarage du Thread new Thread(this).start(); //Création de l'objet reception new Recepteur(serv, in, this); } catch (IOException ioe){ System.out.println("Probleme ouverture de flux"); } } 3eme class public Recepteur(Serveur serv, BufferedReader in, Connexion connect) { this.in = in; this.serv = serv; this.connect = connect; new Thread(this).start(); }
voilà mon problème actuellement est que mes clients on l'echo l'écho de tous ce qui transiste sur le réseau.
|
|
vendredi 7 mai 2004 à 15:59:18 |
Mmmmm

linupat
|
Peut tu m'expliquer comment initialiser mon out pour qu'il n'interragise pas sur tous mes clients???
|
|
samedi 8 mai 2004 à 09:54:35 |
Re : Allocation de port de connexion dynamiquement

kirua12
|
J'ai testé ton code (simple écho du message envoyé) et j'ai pas de pb de communication entre les clients (chaque client est indépendant) J'ai eu juste un pb lors de la création et du démarrage des threads. Au lieu de créer les threads dans le constructeur, il faut le faire par l'appelant. Au lieu de faire ça //Dans le constructeur de Connexion new Thread(this).start();
|
il faut faire //Dans Serveur new Thread(new Connexion(socket, this)).start();
|
Voilà pour moi ça marche très bien
|
|
lundi 10 mai 2004 à 08:39:34 |
ok, pourquoi pas!!

linupat
|
En faite mon pble est pas que mes clients ne sont pas indépendant, mes je reçois l'echo des messages du serveur sur le mauvais client (c le premier client connecté qui reçois tous les message). Je pose la question si sa vient pas de l'init de mes flus d'entrée et de sortie????
|
|
Cette discussion est classée dans : port, serveur, connexion, dynamiquement, allocation
Répondre à ce message
Sujets en rapport avec ce message
connexion a un serveur irc [ par damiendumas ]
salut !Maintenant que j'ai installé JBuilder, je peux travailler.Je suis en train de créer un bot enfin j'essaye, le seul truc qu'il me manque c'est c
Problème de connexion avec UDP [ par patbloup ]
Voilà je souhaite me faire un client/serveur UDP, rien de plus simple!!! Mais voilà je trouve pas mal de source sur le Web ou les Exceptions du à la c
AIE AIE AIE ->probleme de connexion [ par Frouf85 ]
Bonjour,Je développe une application client serveur qui devrait par la suite sur internet. Une application cliente se connecte à une application serve
Questions sur les serveurs java [ par Zephiroth ]
Bonjours à tous !! j'aimerais qq petites réponses aux questions existentielles que je me pose :p 1)Est-il possible d'implémenter autre chose que des s
connexion SSL [ par darktigrou ]
Bonjour j'ai un problème sur une application de videosurveillance java!Elle fonctionne actuellement grâce à des sockets classiques, le problème vien d
java/j2ee [ par adnane1 ]
Bonjour;j'aimerais savoir est ce qu'un serveur d'application(par exemple:tomcat) peut a lui seul gerer les connexions a la base de donnée.c-à-d parame
Connexion à un serveur. [ par EPS32HAY ]
Bonjour ,à tous,je crée actuellement une petite application JAVA dans laquelle je dois me connecter à un serveur nommé toto.Ce serveur demande à la co
[JAVA] Serveur - Client connexion [ par Lem001 ]
Voila j'essais de faire un petit prog du style msn, pour communiquer.J'ai ma classe GUI serveur, qui lorsqu'on click sur un bouton appel une methode d
problème avec les socket en java (Connection timed out) [ par aLCHMEY ]
Bonjour V
Probleme de connexion JDBC avec APPLET [ par Volfield ]
Bonjour, je réalise une applet qui doit se connecter sur un serveur de BDD mysql distant.Quand je fais les test sur mon easyphp, pas de problème.Quand
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : COURRE : COUR par barhoum1111
Cliquez pour lire la suite par barhoum1111 RE : COURRE : COUR par Julien39
Cliquez pour lire la suite par Julien39
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|