1

方法一:

InetAddress addr = InetAddress.getByName("192.168.0.101");
int port = 18250;
Socket socket = new Socket(addr, port);

方法二:

Socket socket = new Socket("192.168.0.101",18250);
4

2 回答 2

2

他们是一样的:

java源代码:

public
class Socket {

...

    public Socket(String host, int port)
    throws UnknownHostException, IOException
    {
    this(host != null ? new InetSocketAddress(host, port) :
         new InetSocketAddress(InetAddress.getByName(null), port),
         (SocketAddress) null, true);
    }


    public Socket(InetAddress address, int port) throws IOException {
    this(address != null ? new InetSocketAddress(address, port) : null, 
         (SocketAddress) null, true);
    }

...
}
于 2012-05-28T07:33:16.117 回答
0

对于 HelloWorld 风格的项目,它们之间没有太大区别。在较大的项目中,使用方法 1 可能有一些优势。如果您已经有一个 InetAddress 对象,那么通过使用 Socket(InetAddress, int) 构造函数可以避免让 Socket 类检查字符串是否是正确的 Internet 地址。

于 2012-05-28T07:32:50.873 回答