JavaRush /Java блог /Архив info.javarush /Http сервер ttt 30 уровень Симферополь 12 декабря 2015 2494 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 Fry Уровень 41 12 декабря 2015 большая задача на 32 вроде, там все есть. Все делается через сокеты.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Сервер
Все делается через сокеты.