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
TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|