I made a simple socket application using Java.Sockets. I ran client and the server at the same pc which is connected a modem with some other pcs. Client can connect to server with my local ip. But when it try to connect with external ip it fails.
Here the server code:
int portno=Integer.parseInt(args[0]);
ServerSocket ssock = new ServerSocket(portno);
while(true){
Socket csock = ssock.accept();
PrintWriter out = new PrintWriter(csock.getOutputStream(), true);
BufferedReader in = new BufferedReader( new InputStreamReader(csock.getInputStream()));
String buffer = in.readLine();
System.out.println(buffer);
csock.close();
}
And client code:
public static void main(String args[]) throws Exception{
String ip="My External IP";
int port=Integer.parseInt(args[0]);
Socket sock = new Socket(ip,port);
PrintWriter out = new PrintWriter(sock.getOutputStream(), true);
BufferedReader in = new BufferedReader( new InputStreamReader(sock.getInputStream()) );
BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in) );
String buffer=stdin.readLine();
out.println(buffer);
sock.close();
}