من یه برنامه socket نوشنم که client یه رشته ارسال می کنه به server بعد این برنامه فقط توی شبکه داخلی کار میکنه
وقتی public ip رو به برنامه میدم کار نمی کنه , مشکل کجاست؟
برنامه client :
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Formatter;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class CHATDemo {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner ipPort = new Scanner(System.in);
System.out.println("Enter IP:");
String ip = ipPort.nextLine();
System.out.println("Enter PORT:");
int port = ipPort.nextInt();
try (Socket socket = new Socket(ip, port)) {
Formatter fOPS = new Formatter(socket.getOutputStream());
fOPS.format("Connected");
fOPS.flush();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}
برنامه server :
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.SSLServerSocket;
public class CHATDemo2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner portSca = new Scanner(System.in);
System.out.println("Enter PORT:");
int port = portSca.nextaInt();
try (ServerSocket serverSocket = new ServerSocket(port);
Socket socket = serverSocket.accept()) {
Scanner receive=new Scanner(socket.getInputStream());
System.out.println(receive.nextLine());
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}