Chr*_*ris 4 java sockets linux ubuntu
我正在尝试制作一个简单的客户端/服务器程序。我打开了一个 ServerSocket,但似乎无法使用我创建的客户端套接字连接到它。
我一直在寻找答案有一段时间了 - 坦率地说,我不确定要针对这个问题搜索什么。
这是客户端代码:
import java.io.*;
import java.net.*;
public class Client{
public static void main(String[] args) throws IOException {
Socket s = null;
try{
System.out.println("connecting to host...");
s = new Socket("dagobah", 6464);
}catch (UnknownHostException e) {
System.err.println("Can't connect");
System.exit(1);
}
System.out.println("Connected to host");
s.close();
}
Run Code Online (Sandbox Code Playgroud)
}
这是服务器代码:
import java.net.*;
import java.io.*;
import java.util.*;
public class server{
public static void main(String[] args) throws IOException{
ServerSocket serverSocket = null;
try{
serverSocket = new ServerSocket(6464);
}catch (IOException e){
System.err.println("fail to start server");
System.exit(1);
}
System.out.println("Server started : )");
Socket clientSocket = null;
try{
System.out.println("waiting for a client...");
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.out.println("fail can't accept client connection");
System.exit(-1);
}
System.out.println("client connected");
clientSocket.close();
serverSocket.close();
}
Run Code Online (Sandbox Code Playgroud)
}
客户端永远不会超过 try 块
客户端输出:连接到主机...
服务器输出:服务器启动:) 等待客户端...
自从发布这个问题以来,我了解到这是我的计算机特有的问题。我正在运行 Linux 2.6.38-11-generic x86_64 GNU/Linux Ubuntu Natty
任何和所有的帮助将不胜感激!:)
该Socket构造实际上并没有连接,但它并尝试将主机名解析为IP地址。看起来在这种情况下名称解析需要很长时间,最终会超时,抛出一个UnknownHostException. 我听说这在 Windows 上可能需要几分钟。
是如何dagobah解析的,通过 DNS 还是?尝试使用 IP 地址而不是名称。