В Java существует ли что-то сопоставимое с сокет-сервером Python? - PullRequest
4 голосов
/ 14 марта 2011

В настоящее время я внедряю простой клиент TCP и сервер TCP в Java, и при поиске примеров я наткнулся на эту замечательную среду Python:

http://docs.python.org/library/socketserver.html

РЕДАКТИРОВАТЬ

Я ищу решение, в котором вы можете создать TCP-сервер, выполнив такой вызов:

TCPServer server = new TCPServer(port, RequestHandler);
server.serveForever();

Итак, у меня естьмногопоточный сервер из коробки, где мне нужно только реализовать RequestHandler (это может быть какой-то интерфейс, требующий метода дескриптора).

Есть ли что-то подобное в Java?Похоже, что внедрение сетевых серверов очень просто и понятно.

Ответы [ 4 ]

3 голосов
/ 14 марта 2011

Не на основном языке, нет. Вы должны делать обычные вещи, которые вы делаете на большинстве языков, где вы настраиваете слушателя, принимаете соединения, проверяете вход и т. Д.

Я уверен, что где-то кто-то создал для этого универсальный «фреймворк», но, честно говоря, это около 40 строк кода, и есть множество учебных пособий, которые показывают это.

Наиболее аналогичным подходом является использование классов Java NIO (1.4 и выше) и использование Selector для принятия и опроса новых соединений и ввода данных на подключенных сокетах.

1 голос
/ 14 марта 2011

Я нашел нечто похожее на то, что вышеупомянутый код Python может сделать (как в вашем посте) прямо здесь: http://javawork.org/examples/

 final SocketListener listener = new SocketListener( 6060 );
 listener.start();
0 голосов
/ 14 марта 2011

Есть хорошие примеры для Java, как вы можете создавать многопоточные серверы.Я не могу себе представить, что может сделать сторонний API, чтобы сделать это проще / проще.

0 голосов
/ 14 марта 2011

Вы имеете в виду, как ServerSocket в Java?http://www.google.co.uk/search?q=java+serversocket+tutorials

Если это кажется сложным, вероятно, существует более простой способ сделать это.Я предлагаю вам задать более конкретный вопрос, если он у вас есть.

...