Hey there, ive made a small game for me and a friend to play on.

i can made a connection through localhost, my local ip through my modem but cannot get it to go through the net

No firewall and DMZ, a port tester tells me its open and if i have my server waiting will reply that a null user has joined when i use the online port tester but my client refuses to connect.

Client:
Java Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;


public class Client {
	
	static public void start() throws Exception{
		Window.jtAreaOutput.setText(null);
		Window.jtAreaOutput.append("Enter IP\n\n");
		Window.gamewait();
		String ip = Window.Cmd;
		Window.jtAreaOutput.setText(null);
	    Window.jtAreaOutput.append("Connecting to: "+ip+" ...");
	    
        Socket s = new Socket(ip, 9090);
        PrintWriter out =
                new PrintWriter(s.getOutputStream(), true);
        BufferedReader input =
            new BufferedReader(new InputStreamReader(s.getInputStream()));
        String answer = input.readLine();
        out.println(Player.name);
        Window.jtAreaOutput.append(" You have joined " + answer +"s session.");
        out.println(Player.weaponName);
        out.println(Player.weaponDesc);
        out.println(Player.weaponWorth);
        out.println(Player.physicalDamageMin);
        out.println(Player.physicalDamageMax);
        out.println(Player.dodgeChance);
        out.println(Player.hitChance);
        out.println(Player.exp);
        out.println(Player.nextExp);
        out.println(Player.hp);
        out.println(Player.mhp);
        out.println(Player.lvl);
        out.println(Player.money);
        s.close();
        Window.jtAreaOutput.append("\n\nConnection closed.");
		
	}
}
Server:
Java Code:
import java.io.*;
import java.net.*;

public class Server
{
	static String clientSentence;
	static String capitalizedSentence;
	 static ServerSocket welcomeSocket;
	 static Socket connectionSocket;
	 static BufferedReader inFromClient;
	 static DataOutputStream outToClient;
	 
	 static Boolean isStarted = false;
	 static Boolean isConnected = false;
	 static ServerSocket listener;
	 static Socket socket;
	 
	 public static void start() throws IOException {
	        listener = new ServerSocket(9090);
	        try {
	            while (true&&listener.isClosed()!=true) {
	            		 socket = listener.accept();
	                BufferedReader input =
	                        new BufferedReader(new InputStreamReader(socket.getInputStream()));
	                try {
	                    PrintWriter out =
	                        new PrintWriter(socket.getOutputStream(), true);
	                    
	                    out.println(Player.name);
	                    String answer = input.readLine();
	                    aPlayer.name=answer;
	                    Window.jtAreaOutput.append(aPlayer.name+" has joined the session ... Gathering info ...");
	                    answer = input.readLine();
	                    aPlayer.weaponName=answer;
	                    answer = input.readLine();
	                    aPlayer.weaponDesc=answer;
	                    answer = input.readLine();
	                    aPlayer.weaponWorth=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.physicalDamageMin=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.physicalDamageMax=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.dodgeChance=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.hitChance=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.exp=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.nextExp=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.hp=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.mhp=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.lvl=Integer.parseInt(answer);
	                    answer = input.readLine();
	                    aPlayer.money=Integer.parseInt(answer);
	                    Window.jtAreaOutput.append(aPlayer.name+"\n");
	                    Window.jtAreaOutput.append(aPlayer.weaponName+"\n");
	                    Window.jtAreaOutput.append(aPlayer.weaponDesc+"\n");
	                    socket.close();
	                    listener.close();
	                } finally {
	                }
	            }
	            Window.jtAreaOutput.append("\nConnection closed.");
	        }
	        finally {
	        }
	    }
}
I know the code probablly looks terrible but i just started java about a week ago so dont hate lol.