http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.htmlにあるOracle の ServerSide Socket チュートリアルに従っています。彼らが提供するソースを使用します:
- http://docs.oracle.com/javase/tutorial/networking/sockets/examples/KnockKnockServer.java
- http://docs.oracle.com/javase/tutorial/networking/sockets/examples/KnockKnockProtocol.java
ただし、KnockKnockServer を実行しようとすると、IOException が発生し、サーバーが出力します
Could not listen on port: 4444.
e.printStackTrace()
IOException catch ブロックにa を追加し、次を取得します。
[beni@mackerel:~]$ \sudo java KnockKnockServer
Creating socket
Could not listen on port: 4444.
java.net.BindException: Permission denied
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:106)
at KnockKnockServer.main(KnockKnockServer.java:41)
root として実行していて、ポート 4444 を開こうとしていることに注意してください。それでも Permission denied エラーが表示されるのはなぜですか?