comment puis-je me connecter au serveur de socket à l'aide de l'adresse ip et numéro de port( le client est en cours d'exécution sur une autre machine que le serveur)
Programme Client
public class client implements Runnable {
protected static String server_IP = "141.117.57.42";
private static final int server_Port = 5555 ;
protected static String client_IP ;
public static void main(String[] args) throws IOException{
final String host = "localhost";
int init = 0 ;
try {
InetAddress iAddress = InetAddress.getLocalHost();
client_IP = iAddress.getHostAddress();
System.out.println("Current IP address : " +client_IP);
} catch (UnknownHostException e) {
}
try {System.out.println("hello1");
Socket socket = new Socket(server_IP,server_Port);
System.out.println("hello3");
init = initialize(socket);
}catch (SocketException e) {
System.out.println("Error: Unable to connect to server port ");
}
if (init == 0 ){
System.out.println("error: Failed to initialize ");
System.exit(0);
}
//Thread init_Thread = new Thread();
}
private static int initialize(Socket socket ) throws IOException{
System.out.println("hello");
int rt_value = 0 ;
OutputStream os = socket.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pw = new PrintWriter(os, true);
System.out.println("server: " + br.readLine());
pw.println("192.343.34.321");
//BufferedReader userInputBR = new BufferedReader(new InputStreamReader(System.in));
//String userInput = userInputBR.readLine();
//out.println(userInput);
socket.close();
return rt_value = 1 ;
}
public void run(){
}
}
côté serveur programme
public class server {
protected static String server_IP ;
public static void main(String[] args) throws IOException {
int server_Port = 5555 ;
try {
InetAddress iAddress = InetAddress.getLocalHost();
server_IP = iAddress.getHostAddress();
System.out.println("Server IP address : " +server_IP);
} catch (UnknownHostException e) {
}
ServerSocket serverSocket = new ServerSocket(server_Port);
while (true) {
Socket socket = serverSocket.accept();
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os, true);
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
pw.println("Connection confirmed ");
BufferedReader br = new BufferedReader(isr);
String str = br.readLine();
pw.println("your ip address is " + str);
pw.close();
//socket.close();
//System.out.println("Just said hello to:" + str);
}
comment puis-je me connecter au serveur de socket à l'aide de l'adresse ip et numéro de port( le client est en cours d'exécution sur une autre machine que le serveur)
lorsque je change la server_IP des clients sur "local host", il fonctionne parfaitement
toute aide serait appréciée.
- (1) ne Jamais ignorer une exception, et (2) lors de la capture d'une exception, d'imprimer l'exception, pas un message d'erreur de votre propre conception. Sinon débogage devient un simple jeu de devinettes.
- va vous remercions, bien que je n'allais pas les erreurs, mon programme a été suspendu lors de la connexion de socket.
Vous devez vous connecter pour publier un commentaire.
Pour se connecter dans votre code que vous utilisez:
De sorte que vous pouvez utiliser:
Il semble que vous avez dans votre code donc je ne suis pas sûr quel est le problème que vous rencontrez.
N'oubliez pas que vous devez configurer votre routeur pour forwarder les ports, si elle est située à l'extérieur de votre réseau local.
http://www.wikihow.com/Set-Up-Port-Forwarding-on-a-Router
N'oubliez pas que si vous utilisez un pare-feu, cela peut également interférer avec la connexion.
Mise à jour de /etc/hosts
Ajoutez la ligne suivante
127.0.1.1 192.168.10.109