Skip to content

Instantly share code, notes, and snippets.

@MisterTimur
Last active August 27, 2015 23:07
Show Gist options
  • Select an option

  • Save MisterTimur/ed9eb5439dfac433035a to your computer and use it in GitHub Desktop.

Select an option

Save MisterTimur/ed9eb5439dfac433035a to your computer and use it in GitHub Desktop.

Revisions

  1. MisterTimur revised this gist Aug 27, 2015. 1 changed file with 71 additions and 0 deletions.
    71 changes: 71 additions & 0 deletions Server.Java
    Original file line number Diff line number Diff line change
    @@ -1 +1,72 @@
    package server;/*Абдулов Тимур Рифович 2015 год Email hostingurifa@gmail.com .
    ;INFO
    ;Site https://sites.google.com/site/timpascallib/
    ;Youtube https://www.youtube.com/watch?v=8UsQWQUJYVk
    ;Google+ https://plus.google.com/u/0/+%D0%A2%D0%B8%D0%BC%D1%83%D1%80%D0%90%D0%B1%D0%B4%D1%83%D0%BB%D0%BE%D0%B2/posts
    ;GIST https://gist.github.com/MisterTimur/ed9eb5439dfac433035a
    ;------------------------------------------------------------------------------*/
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class Server {
    static public int MaxLenBuffer=16000;// Размер буффера
    static public int MaxKolZapros=100;// Количество запросов в списке
    static public class TZapros {
    Boolean Rab = false;// Состояние
    public Socket Soc;//Чёкит запроса
    byte Zap[] = new byte[MaxLenBuffer];// Буфер запроса
    byte Otv[] = new byte[MaxLenBuffer];// Буфер ответа
    public void Run(){
    try{
    Rab = true;// Люработка начата
    int ZapSi; // Размер запроса
    int OtvSi; // Размер ответа
    // Принимаем данные
    ZapSi = Soc.getInputStream().read(Zap,0,MaxLenBuffer);
    // Формируем ответ
    OtvSi = ZapSi; //копируем размер запроса
    Otv = Zap; // копируем запрос
    // ОТправляем данные
    Soc.getOutputStream().write(Otv,0,OtvSi);
    Soc.close();// закрываем соеденение
    Rab = false;// Готовы принимать новый запрос
    } catch (Exception ex)// Ошибки
    {System.out.println("Ошибка 3");}
    }
    }
    static public TZapros[] Zapross; // Список запросов
    static public int NomRunZapros; // Номер запроса отправляемого на обработку
    static public void StartZApros(Socket Soc){
    NomRunZapros = -1;// Устанавливаем номер свободного потока
    //Этот метод будет выполняться в побочном потоке
    Thread myThready = new Thread(new Runnable(){public void run()
    {Zapross[NomRunZapros].Run();}});

    // Ищим свободый поток
    for (int f=0;f<MaxKolZapros;f++)
    if (Zapross[f].Rab==false) // если поток свободен
    {//Отправляем на обработку
    Zapross[f].Rab=true;// Выставляем флаг занято
    Zapross[f].Soc=Soc;// Передаем чёкит
    NomRunZapros=f;// указываем куда направляем поток
    myThready.start();// Запускаем поток
    break;
    }
    } // запускат запрос на выполнение
    public static void main(String[] args) throws IOException{

    Zapross = new TZapros[MaxKolZapros];// Создаем масив запросов
    for (int f=0;f<MaxKolZapros;f++)
    Zapross[f]= new TZapros();// Создаем обьекты запроса
    // Запускаем сервер
    ServerSocket listener = new ServerSocket(8080);
    // Цикл приема запросов
    while(true)
    try
    {
    Socket Soc = listener.accept(); // ПРинимаем запрос
    StartZApros(Soc);//ОТправляем запрос на обработку
    } catch (Exception ex)
    {System.out.println("Ошибка 1");}
    }
    }
  2. MisterTimur revised this gist Aug 27, 2015. 1 changed file with 0 additions and 65 deletions.
    65 changes: 0 additions & 65 deletions Server.Java
    Original file line number Diff line number Diff line change
    @@ -1,66 +1 @@
    package server;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class Server {
    static public int MaxLenBuffer=16000;// Размер буффера
    static public int MaxKolZapros=100;// Количество запросов в списке
    static public class TZapros {
    Boolean Rab = false;// Состояние
    public Socket Soc;//Чёкит запроса
    byte Zap[] = new byte[MaxLenBuffer];// Буфер запроса
    byte Otv[] = new byte[MaxLenBuffer];// Буфер ответа
    public void Run(){
    try{
    Rab = true;// Люработка начата
    int ZapSi; // Размер запроса
    int OtvSi; // Размер ответа
    // Принимаем данные
    ZapSi = Soc.getInputStream().read(Zap,0,MaxLenBuffer);
    // Формируем ответ
    OtvSi = ZapSi; //копируем размер запроса
    Otv = Zap; // копируем запрос
    // ОТправляем данные
    Soc.getOutputStream().write(Otv,0,OtvSi);
    Soc.close();// закрываем соеденение
    Rab = false;// Готовы принимать новый запрос
    } catch (Exception ex)// Ошибки
    {System.out.println("Ошибка 3");}
    }
    }
    static public TZapros[] Zapross; // Список запросов
    static public int NomRunZapros; // Номер запроса отправляемого на обработку
    static public void StartZApros(Socket Soc){
    NomRunZapros = -1;// Устанавливаем номер свободного потока
    //Этот метод будет выполняться в побочном потоке
    Thread myThready = new Thread(new Runnable(){public void run()
    {Zapross[NomRunZapros].Run();}});

    // Ищим свободый поток
    for (int f=0;f<MaxKolZapros;f++)
    if (Zapross[f].Rab==false) // если поток свободен
    {//Отправляем на обработку
    Zapross[f].Rab=true;// Выставляем флаг занято
    Zapross[f].Soc=Soc;// Передаем чёкит
    NomRunZapros=f;// указываем куда направляем поток
    myThready.start();// Запускаем поток
    break;
    }
    } // запускат запрос на выполнение
    public static void main(String[] args) throws IOException{

    Zapross = new TZapros[MaxKolZapros];// Создаем масив запросов
    for (int f=0;f<MaxKolZapros;f++)
    Zapross[f]= new TZapros();// Создаем обьекты запроса
    // Запускаем сервер
    ServerSocket listener = new ServerSocket(8080);
    // Цикл приема запросов
    while(true)
    try
    {
    Socket Soc = listener.accept(); // ПРинимаем запрос
    StartZApros(Soc);//ОТправляем запрос на обработку
    } catch (Exception ex)
    {System.out.println("Ошибка 1");}
    }
    }
  3. MisterTimur created this gist Aug 27, 2015.
    66 changes: 66 additions & 0 deletions Server.Java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,66 @@
    package server;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class Server {
    static public int MaxLenBuffer=16000;// Размер буффера
    static public int MaxKolZapros=100;// Количество запросов в списке
    static public class TZapros {
    Boolean Rab = false;// Состояние
    public Socket Soc;//Чёкит запроса
    byte Zap[] = new byte[MaxLenBuffer];// Буфер запроса
    byte Otv[] = new byte[MaxLenBuffer];// Буфер ответа
    public void Run(){
    try{
    Rab = true;// Люработка начата
    int ZapSi; // Размер запроса
    int OtvSi; // Размер ответа
    // Принимаем данные
    ZapSi = Soc.getInputStream().read(Zap,0,MaxLenBuffer);
    // Формируем ответ
    OtvSi = ZapSi; //копируем размер запроса
    Otv = Zap; // копируем запрос
    // ОТправляем данные
    Soc.getOutputStream().write(Otv,0,OtvSi);
    Soc.close();// закрываем соеденение
    Rab = false;// Готовы принимать новый запрос
    } catch (Exception ex)// Ошибки
    {System.out.println("Ошибка 3");}
    }
    }
    static public TZapros[] Zapross; // Список запросов
    static public int NomRunZapros; // Номер запроса отправляемого на обработку
    static public void StartZApros(Socket Soc){
    NomRunZapros = -1;// Устанавливаем номер свободного потока
    //Этот метод будет выполняться в побочном потоке
    Thread myThready = new Thread(new Runnable(){public void run()
    {Zapross[NomRunZapros].Run();}});

    // Ищим свободый поток
    for (int f=0;f<MaxKolZapros;f++)
    if (Zapross[f].Rab==false) // если поток свободен
    {//Отправляем на обработку
    Zapross[f].Rab=true;// Выставляем флаг занято
    Zapross[f].Soc=Soc;// Передаем чёкит
    NomRunZapros=f;// указываем куда направляем поток
    myThready.start();// Запускаем поток
    break;
    }
    } // запускат запрос на выполнение
    public static void main(String[] args) throws IOException{

    Zapross = new TZapros[MaxKolZapros];// Создаем масив запросов
    for (int f=0;f<MaxKolZapros;f++)
    Zapross[f]= new TZapros();// Создаем обьекты запроса
    // Запускаем сервер
    ServerSocket listener = new ServerSocket(8080);
    // Цикл приема запросов
    while(true)
    try
    {
    Socket Soc = listener.accept(); // ПРинимаем запрос
    StartZApros(Soc);//ОТправляем запрос на обработку
    } catch (Exception ex)
    {System.out.println("Ошибка 1");}
    }
    }