PB connection Refused serveur / client java - Java - Programmation
Marsh Posté le 21-11-2002 à 20:22:02
t'es en reseau local ? ya un firewall entre les 2 machines ?
Marsh Posté le 21-11-2002 à 20:52:09
Oui je suis en réseau local, et non pas de firewall entre les 2 machines
Marsh Posté le 21-11-2002 à 20:53:15
almadeus a écrit a écrit : Pour info ma machine tourne ss Linux firewall port 8765 ouvert |
almadeus a écrit a écrit : Oui je suis en réseau local, et non pas de firewall entre les 2 machines |
Marsh Posté le 21-11-2002 à 21:01:10
J'ai dit une connerie Greg ?
Oui j'ai un firewall qui filtre les E / S de mon réseau local, mais pas à l'intérieur du réseau local.
Marsh Posté le 22-11-2002 à 11:05:22
almadeus a écrit a écrit : J'ai dit une connerie Greg ? Oui j'ai un firewall qui filtre les E / S de mon réseau local, mais pas à l'intérieur du réseau local. |
et tu as essayé en arrêtant le firewall pour supprimer définitivement cette hypothèse ?
Sinon côté client je vois pas bien où est l'IP du serveur, c'est quoi cette chaine *.*.*.*. ?
Marsh Posté le 22-11-2002 à 11:13:37
encore qqun qui se connecte en localhost?
Marsh Posté le 22-11-2002 à 11:19:40
DarkLord a écrit a écrit : encore qqun qui se connecte en localhost? |
on dirait bien
Marsh Posté le 22-11-2002 à 11:32:48
*.*.*.*.* => IP du serveur
Qu'entendez vous par qq qui connecte en localhost?
En fait on récupère l'IP du serveur et le client se connecte dessus
Marsh Posté le 22-11-2002 à 11:34:13
Avec ou sans Firewall, çà ne fonctionne pas dès lors que le serveur est implanté sur une autre machine que la notre et hors du réseau local
Marsh Posté le 22-11-2002 à 11:35:29
bon sais tu pinger la machine ? faire un ping du client vers le serveur et du serveur vers le client ?
Marsh Posté le 22-11-2002 à 11:39:49
les machines client et serveur sont connectées
apparament on arrive pas a ouvrir le port sur le serveur on recoit Connection refused: connect sur le client pour socket = new Socket(IP serveur, port du serveur)
Marsh Posté le 22-11-2002 à 11:41:29
DarkLord a écrit a écrit : bon sais tu pinger la machine ? faire un ping du client vers le serveur et du serveur vers le client ? |
Etape suivante : quand le serveur tourne, essaye de te connecter de la machine cliente avec telnet :
telnet ipserveur portserveur
Marsh Posté le 22-11-2002 à 11:45:34
T'as pas un réseau local avec des ip privée genre 192.168.*.* et l'autre avec des IP publiques ?
Y a un routeur enter les deux réseaux ?
Il fait du Nat ?
Marsh Posté le 22-11-2002 à 11:51:13
Désolé de m'incruster, mais j'ai juste une toute ch'tite question de débutant en Java !
Apparemment, la méthode accept() de ServerSocket est une méthode synchrone.
A part un Thread, y'a un moyen pour un ServerSocket d'attendre un client de manière asynchrone ? (Sur le même principe que CAsyncSocket en MFC)
Merci, et désolé à l'auteur du topic
Marsh Posté le 22-11-2002 à 11:55:19
almadeus a écrit a écrit : Avec telnet connection refussée aussi |
bin laisse tomber ton code. C'est pas un prob de programmation ...
Marsh Posté le 22-11-2002 à 11:55:33
tu sais la pinger ou pas?
Marsh Posté le 22-11-2002 à 12:01:17
il y aurait pas une securite sous windows pour ouvrir un port a partir du serveur.
On ping bien le client et le serveur
Marsh Posté le 22-11-2002 à 12:25:08
almadeus a écrit a écrit : il y aurait pas une securite sous windows pour ouvrir un port a partir du serveur. On ping bien le client et le serveur |
ben euh ... lance ton serveur et fait un ptit netstat -an pour voir si le port est ouvert ?
Marsh Posté le 22-11-2002 à 13:11:44
almadeus a écrit a écrit : *.*.*.*.* => IP du serveur Qu'entendez vous par qq qui connecte en localhost? En fait on récupère l'IP du serveur et le client se connecte dessus |
comment
Marsh Posté le 22-11-2002 à 13:20:00
on connait l IP de la machine ou se trouve le serveur
avec netstat -an on a 0.0.0.0:8765 LISTENING
Marsh Posté le 22-11-2002 à 13:24:04
il serait pas deja oqp par autre chose ton port?
Marsh Posté le 22-11-2002 à 13:31:45
non le port nest pas oqp
avant de lancer le serveur je fais un netstat ki ne montre pas de port ouvert
apres je lance le serveur et netstat montre ke le port est maintenant ouvert
Marsh Posté le 22-11-2002 à 13:33:30
almadeus a écrit a écrit : Avec ou sans Firewall, çà ne fonctionne pas dès lors que le serveur est implanté sur une autre machine que la notre et hors du réseau local |
Si telnet ne fonctionne pas entre le client et le serveur, c'est peut-être au niveau du routeur qui relie les deux réseaux qu'il faut chercher.
Marsh Posté le 22-11-2002 à 16:15:37
Pas de réponse...?
Soit il est parti en week-end et je vais bientôt faire pareil , soit c'était vraiment bête et il ose pas le dire...
Marsh Posté le 22-11-2002 à 17:20:32
>Si telnet ne fonctionne pas entre le client et le serveur, >c'est peut-être au niveau du routeur qui relie les deux réseaux >qu'il faut chercher.
Je sais pas, c'est pour çà !!!
On a pas trouvé, mais on suppose que ça vient de notre réseau local, car lorsque le serveur est chez nous TVB, lorsque c'est une machine distante gros problème!!
voilà
Marsh Posté le 21-11-2002 à 19:50:30
Bonjour , un petit coup de main avec mes "chaussettes"
Le problème est que sur une mm machine ça marche, mais que lorsque le client est sur ma machine et le serveur sur une distante çà marche pas, le client sur une machine distante et le serveur sur ma machine ça marche ???
Alors un peu d'aide serait la bienvenue.
Pour info ma machine tourne ss Linux firewall port 8765 ouvert
Voilà le code du client
*****************************************************************
import java.net.*;import java.io.*;
import java.net.*;
class Client
{
static final int port=8765;
public static void main(String[] argv)
{
BufferedReader lecteurFichier=null;
BufferedReader entree=null;
PrintStream sortie=null;
String ligne=null;
Socket socket=null;
try
{
socket=new Socket("*.*.*.*.",port);
//lecteurFichier =
//new BufferedReader(new FileReader(argv[0]));
entree=new BufferedReader(new InputStreamReader(socket.getInputStream()));
sortie=new PrintStream(socket.getOutputStream());
//while ((ligne=lecteurFichier.readLine())!=null)
sortie.println("Si vous revecez ce message c'est que ça marche" );
sortie.println("xxxxxx" );
System.out.println(entree.readLine());
socket.close();
}
catch(IOException exc)
{
System.out.println(exc.getMessage());
System.out.println("probleme a determiner" );
}
}
}
*****************************************************************
Voilà le serveur :
import java.net.*;
import java.io.*;
import java.util.*;
class Service extends Thread
{
Socket socket;
BufferedReader entree;
PrintStream sortie;
Service(Socket socket)
{
this.socket=socket;
try
{
entree=new BufferedReader(new InputStreamReader
(socket.getInputStream()));
sortie=new PrintStream(socket.getOutputStream());
}
catch(IOException exc){
System.out.println("3"+exc.getMessage());
try{socket.close();}catch(IOException e){System.out.println("4"+e.getMessage());}}
this.start();
}
public void run()
{
String texte;
int compteur=0;
StringTokenizer st;
try
{
while(!(texte=entree.readLine()).equals("xxxxxx" )){
compteur+=(new StringTokenizer(texte)).countTokens();
System.out.println(texte);
}
sortie.println("votre texte possede "+compteur+
" mots" );
}
catch(IOException exc){System.out.println("1"+exc.getMessage());}
try{socket.close();}catch(IOException e){System.out.println("2"+e.getMessage());}
}
}
class Serveur extends Thread
{
final static int port=8765;
ServerSocket receptionniste;
Serveur()
{
try
{
System.out.println("Ouverture du ServeurSocket" );
receptionniste=new ServerSocket(port);
}
catch(IOException exc)
{
System.out.println("impossible de creer le serveur" );
}
this.start();
}
public void run()
{
Socket socket;
Service c;
try
{
while(true)
{
socket=receptionniste.accept();
c=new Service(socket);
}
}
catch(IOException exc)
{
System.out.println("probleme de connection" );
}
}
public static void main(String argv[])
{
try{
System.out.println("Ouverture du serveur" );
new Serveur();
}catch(IOException e){System.out.println(e.getMessage());}
}
}