1
java.net.BindException: Address already in use

    at sun.nio.ch.Net.bind0(Native Method)

    at sun.nio.ch.Net.bind(Net.java:174)

    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:139)

    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:77)

    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:70)

    at org.restlet.engine.connector.ServerConnectionHelper.createServerSocketChannel(ServerConnectionHelper.java:158)

    at org.restlet.engine.connector.ServerConnectionHelper.start(ServerConnectionHelper.java:320)

    at org.restlet.Server.start(Server.java:590)

    at org.restlet.Component.startServers(Component.java:611)

    at org.restlet.Component.start(Component.java:538)

    at ucsRestService.service.UCSRestService.main(Unknown Source)
4

4 に答える 4

1

つまり、同じホストとポートで複数のサーバーを作成しようとしています。

于 2013-09-12T13:42:02.553 に答える
1

1 つのマシンは、特定のポート番号を持つリスナーを一度に 1 つだけ持つことができます。複数のリスナーの場合は、異なるポート番号を試してください。

于 2013-09-12T13:49:39.800 に答える
1

指定されたポートでリッスンしているサービス/サーバーがあります。開始しようとしているサーバー/サービスのポートを変更するか、そのポートを占有しているサービス/サーバーを無効にする必要があります。

于 2013-09-12T13:45:10.507 に答える
0

また、私が作業しているときに、このエラーに遭遇することもあります-esp。テスト - ソケット アプリケーション。

ソケットを作成する場合は、close()後でそれを作成する必要があります。そうしないと、次に同じポートにソケットを作成しようとしたときに、ソケットが既に占有されているため作成できません。

別のポートを試して、常に閉じることを忘れないでください ;) 別のポートにソケットを作成したくない場合は、マシン (またはネットワーク カードだけ) を再起動する必要があると思います。


ソケットがフレームワークによって隠されているために直接呼び出すことができない場合はclose()、そのフレームワークを適切に終了する必要があります。その後、すべてのリソースを閉じることができます (少なくともそれが妥当なフレームワークである場合)。

于 2013-09-12T13:49:11.380 に答える