爲什麼我們必須創建一個InetSocketAddress
的對象?爲什麼我們必須使用InetSocketAddress來輸入我們的端口號才能使用ServerSocketChannel
但ServerSocket
我們只是用int
輸入端口號
例子:
try(
ServerSocketChannel listener = ServerSocketChannel.open();
ServerSocket serverSocket = listener.socket()
){
serverSocket.bind(new InetSocketAddress(2266));
//we can't use serverSocket.bind(2266);
}catch (IOException e){
e.printStackTrace();
}
我試圖正確地閱讀這個問題。你的一個說法是「我們只是使用'int'來輸入端口號」,但是在你的代碼中你不只是使用'int',而是你使用'InetSocketAddress'並聲明「我們不能使用'int'來輸入端口號「。這個問題本身似乎有矛盾。 –
我們不能使用'serverSocket.bind(2266)',我們必須通過'new InetSocketAddress(2266)'來包裝這個端口號,或者換句話說把這個端口號放在'new InetSocketAddress()'構造函數裏面。 – James
爲什麼我們必須使用InetSocketAddress?爲什麼我們不能像我們想要創建一個簡單的SocketServer那樣把我們的號碼放在那裏? – James