1

方法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);
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クラスでチェックする必要がなくなります。

于 2012-05-28T07:32:50.873 に答える