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
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Forum
DATEFIELDDATEFIELD par manou9
Cliquez pour lire la suite par manou9 RE : GRAPHESRE : GRAPHES par litchiro
Cliquez pour lire la suite par litchiro
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|