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