JavaRush /Java блог /Архив info.javarush /Http сервер ttt 30 уровень Симферополь 12 декабря 2015 2852 views 7 comments Http сервер Статья из группы Архив info.javarush Присоединиться Всем привет! Кто нибудь писал уже серверы? Задача стоит следующая - сделать сервер и клиент, которые передавали бы друг другу строки через HTTP. Собственно с какой стороны подойти? Комментарии (7) ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ, ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ Fry Уровень 41 13 декабря 2015 www.javaportal.ru/java/articles/ClientServer.html ttt Уровень 30 12 декабря 2015 Короче есть наброски кода. Но он работает как-то очень нестабильно, может кто найдет в нем баги Сервер public class HttpServ { public static void main(String[] args) throws Throwable { ServerSocket ss = new ServerSocket(8087); while (true) { Socket s = ss.accept(); System.err.println("Client accepted"); new Thread(new SocketProcessor(s,ss)).start(); } } private static class SocketProcessor implements Runnable { private Socket s; private InputStream is; private OutputStream os; private ServerSocket serverSocket; private SocketProcessor(Socket s,ServerSocket serverSocket) throws Throwable { this.s = s; this.is = s.getInputStream(); this.os = s.getOutputStream(); this.serverSocket = serverSocket; } public void run() { try { readInputHeaders(); writeResponse("<xsl></xsl>"); } catch (Throwable t) { /*do nothing*/ } try { s.close(); //serverSocket.close(); } catch (Throwable t) { /*do nothing*/ } System.err.println("Client processing finished"); } private void writeResponse(String s) throws Throwable { String response = "HTTP/1.1 200 OK\r\n" + "Server: Zaglushka\r\n" + "Content-Type: text/html\r\n" + "Content-Length: " + s.length() + "\r\n" + "Connection: close\r\n\r\n"; String result = response + s; os.write(result.getBytes()); os.flush(); } private vo blacky Уровень 23 12 декабря 2015 Программа на сервере должна прослушивать порт и редиректить клиентов на другие свободные порты. blacky Уровень 23 12 декабря 2015 Можешь рассматривать сокет как некоторый общий внешний ресурс. blacky Уровень 23 12 декабря 2015 del Fry Уровень 41 12 декабря 2015 большая задача на 32 вроде, там все есть. Все делается через сокеты. ttt Уровень 30 12 декабря 2015 мне до него еще далеко( а приложение к понедельнику надо Показать еще комментарии
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Сервер
Все делается через сокеты.