java.net.ConnectException:SocketChannel.openが呼び出されたときに接続が拒否

StackOverflow https://stackoverflow.com/questions/1073203

  •  21-08-2019
  •  | 
  •  

質問

私は、ローカルアドレスにソケットチャネルをオープンするための簡単なプログラムを記述しようとしています。私はこのプログラムを実行するたびに、私は、接続が例外を拒否し得る。

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.nio.channels.SocketChannel;

public class testSocket {

        public static void main(String [] args) {
                try {
                        InetAddress addr = InetAddress.getByName("localhost");
                        InetSocketAddress remoteAddress = new InetSocketAddress(addr, 19015);

                        // Open a new Socket channel and set it to non-blocking
                        SocketChannel socketChannel = SocketChannel.open();
                        socketChannel.configureBlocking(false);

                        // Issue the Connect call on the remote address.
                        socketChannel.connect(remoteAddress);
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
}

私が手に例外がある。

java.net.ConnectException: Connection refused
        at sun.nio.ch.Net.connect(Native Method)
        at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:464)
        at testSocket.main(testSocket.java:17)
UX -

私は、Sun SolarisおよびHPでこの問題が発生しました。 Linuxマシン上で正常に動作するようです。接続が拒否されている理由誰も私が知っていることはできますか?私は、netstatコマンド-aを行なったし、ポートが使用されていないことを確認します。

事前に感謝します!

役に立ちましたか?

解決

SocketChannel.connect()のJavadocから

  このチャネルが非ブロックモードである場合、

このメソッドの呼び出しは、非ブロッキング接続動作を開始します。ローカル接続で発生することができ、接続が、すぐに確立されている場合、このメソッドはtrueを返します。そうでない場合、このメソッドはfalseを返し、接続操作は、後にfinishConnectメソッドを呼び出すことで完了しなければなりません。

私はLinux上でコードを実行すると、(接続)がfalseを返すので、例外はありません。あなたはsocketChannel.finishConnect(への呼び出しを追加する場合)あなたは、Solaris / HP-UXに乗るのと同じ接続が例外を拒否したが表示されます。

I)は、Solaris / HP-UX上で(接続と思われるので、trueを返す例外がスローされている。

他のヒント

のメッセージがあなたの指定したポート(19015)でリッスンどのプロセスがない場合、あなたが受け取るだろう何である「接続が拒否されました」。あなたがそこにはないサービスに接続しようとしているようです。 netstatコマンドでもポートが使用されていないことを言っている!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top