方法1:
InetAddress addr = InetAddress.getByName("192.168.0.101");
int port = 18250;
Socket socket = new Socket(addr, port);
方法2:
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クラスでチェックする必要がなくなります。