В Java, я могу написать код, подобный этому:
ServerSocket ss = new ServerSocket(1111);
Socket s = ss.accept();
// here s.getLocalPort() is 1111
ss.close();
// here this is ok even s is still connected with a client.
ss = new ServerSocket(s.getLocalPort());
на стороне клиента:
Socket s = new Socket("localhost", 1111);
// this line will throw an exception.
ServerSocket ss = new ServerSocket(s.getLocalPort());
Что я не понимаю, так это то, что последняя строка из двух приведенных выше фрагментов кода не имеет значения, почему он работает по-другому? любая информация высоко ценится, спасибо заранее.