Java服务器套接字-仅在本地工作(TCP)
我有一个用java编写的服务器/客户机应用程序。基本上,当客户端尝试本地连接到服务器(127.0.0.1作为IP)时,一切正常。但是,当我使用我的个人IP地址(家庭地址)时,我会收到一个连接超时错误 *我已正确转发端口,使用 *我还在命令提示符中使用netstat-a进行了检查 *我在9005端口托管 以下是我的一些客户端代码,我假设我做错了什么:Java服务器套接字-仅在本地工作(TCP),java,sockets,tcp,client,Java,Sockets,Tcp,Client,我有一个用java编写的服务器/客户机应用程序。基本上,当客户端尝试本地连接到服务器(127.0.0.1作为IP)时,一切正常。但是,当我使用我的个人IP地址(家庭地址)时,我会收到一个连接超时错误 *我已正确转发端口,使用 *我还在命令提示符中使用netstat-a进行了检查 *我在9005端口托管 以下是我的一些客户端代码,我假设我做错了什么: public void run() throws UnknownHostException, IOException{ String ser
public void run() throws UnknownHostException, IOException{
String serverAddress = "xx.xx.xx.xxx"; //My actual IP is here in the program
Socket socket = new Socket(serverAddress, 9005);
in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
String playerName = JOptionPane.showInputDialog(
this,
"Choose Username:",
"Name Selection",
JOptionPane.PLAIN_MESSAGE);
out.println("NEW "+playerName);
我对Java服务器编程相当陌生,如有任何建议,将不胜感激。
如果需要,我可以发布更多的代码,只是不想发布太多。
谢谢
编辑:以下是一些服务器代码:
private final static int PORT = 9005;
public static void main(String[] args) throws Exception {
Server s = new Server();
s.setSize(50,100);
s.setDefaultCloseOperation(s.EXIT_ON_CLOSE);
s.setVisible(true);
System.out.println("Server running");
ServerSocket listener = new ServerSocket(PORT);
try {
while (true) {
new Handler(listener.accept()).start();
}
你也可以发布你的服务器绑定代码吗?你是在局域网上还是在互联网上这样做的?这将是在互联网上进行的,在本地它工作得很好。昨天有一个非常类似的问题。并不是说你在这么做,但他们的IP地址是192.168.1.2,却没有意识到这不是一个“真正的”IP地址。等等,我看看能不能找到问题。哈,不,不是我的192.168,是实际的IP