Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35

Программа игнорирует новый экземпляр

25.05.2017, 18:42. Показов 1431. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. В файловом сервере игнорируется новый экземпляр "new HttpConnect(ss.accept())". Как решить проблему? Заранее благодарю.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package server;
 
import java.net.*;
import java.io.*;
import java.util.*;
 
class Server {
 
    public static void main(String[] args) {
        try{
            ServerSocket ss = new ServerSocket(Integer.parseInt(args[0]));
            while(true)
                 new HttpConnect(ss.accept());
        }
        catch(ArrayIndexOutOfBoundsException ae)
        {
            System.err.println("Usage: Server port");
            System.exit(0);
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
    }
}
 
class HttpConnect extends Thread{
    private final Socket sock;
    HttpConnect(Socket s)
    {
        sock=s;
        setPriority(NORM_PRIORITY-1);
        start();
    }
    
    @Override
    public void run(){
        try
        {
            PrintWriter pw = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()),true);
            BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            String req = br.readLine();
            System.out.println("Request: "+req);
            StringTokenizer st=new StringTokenizer(req);
            if((st.countTokens()>=2)&&st.nextToken().equals("POST"))
            {
                if((req=st.nextToken()).endsWith("/")||req.equals(""));
                req+="index.html";
                try
                {
                    File f=new File(req);
                    BufferedReader bfr = new BufferedReader(new FileReader(f));
                    char[] data = new char[(int)f.length()];
                    bfr.read(data);
                    pw.println("HTTP/1.1 200 OK\n");
                    pw.write(data);
                    pw.flush();
                }
                catch(FileNotFoundException fe)
                {
                    pw.println("HTTP/1.1 404 Not FoundX\n");
                }
                catch(IOException ioe)
                {
                System.out.println(ioe);
                }
            } else pw.println("HTTP/1.1 400 BadRequestW");
            sock.close();
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2017, 18:42
Ответы с готовыми решениями:

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

Неясная ошибка: Новый экземпляр проигнорирован
Только начинаю учить язык по 4-му изданию Философии Java, но примеры там не всегда корректны. Вот 5я глава, 1й пример. Я его уже...

Как создавать новый экземпляр в ArrayList
В массивах классов, чтобы создать новый экземпляр нужно было написать цикл SomeClass objAry = new SomeClass; for (int j = 0; j < 4;...

8
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
25.05.2017, 19:02
Цитата Сообщение от Lenster Посмотреть сообщение
Как решить проблему?
Присвоить его какой-нибудь переменной или полю или добавить в какую-нибудь коллекцию. // К. О.
1
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
25.05.2017, 19:47  [ТС]
Теперь нет сообщения о том, что экземпляр игнорируется, но сервер все равно не работает, вызывается exception. В чем может быть проблема?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package server;
 
import java.net.*;
import java.io.*;
import java.util.*;
 
class Server {
 
    public static void main(String[] args) {
        try{
            ServerSocket ss = new ServerSocket(Integer.parseInt(args[0]));
            HttpConnect HttpConnect;
            while(true)
                HttpConnect = new HttpConnect(ss.accept());
        }
        catch(ArrayIndexOutOfBoundsException ae)
        {
            System.err.println("Usage: Server port");
            System.exit(0);
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
    }
}
 
class HttpConnect extends Thread{
    private final Socket sock;
    HttpConnect(Socket s)
    {
        sock=s;
        setPriority(NORM_PRIORITY-1);
        start();
    }
    
    @Override
    public void run(){
        try
        {
            PrintWriter pw = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()),true);
            BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            String req = br.readLine();
            System.out.println("Request: "+req);
            StringTokenizer st=new StringTokenizer(req);
            if((st.countTokens()>=2)&&st.nextToken().equals("POST"))
            {
                if((req=st.nextToken()).endsWith("/")||req.equals(""));
                req+="index.html";
                try
                {
                    File f=new File(req);
                    BufferedReader bfr = new BufferedReader(new FileReader(f));
                    char[] data = new char[(int)f.length()];
                    bfr.read(data);
                    pw.println("HTTP/1.1 200 OK\n");
                    pw.write(data);
                    pw.flush();
                }
                catch(FileNotFoundException fe)
                {
                    pw.println("HTTP/1.1 404 Not FoundX\n");
                }
                catch(IOException ioe)
                {
                System.out.println(ioe);
                }
            } else pw.println("HTTP/1.1 400 BadRequestW");
            sock.close();
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
    }
}
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
25.05.2017, 20:12
Цитата Сообщение от Lenster Посмотреть сообщение
В чем может быть проблема?
В том, что ты веришь, будто мы телепаты и можем угадать, какой там у тебя exception?
0
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
25.05.2017, 20:26  [ТС]
При запуске сервера срабатывает вот это:
Java
1
2
3
4
5
        catch(ArrayIndexOutOfBoundsException ae)
        {
            System.err.println("Usage: Server port");
            System.exit(0);
        }
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.05.2017, 20:29
Цитата Сообщение от Lenster Посмотреть сообщение
Usage: Server port
так ты параметр то передай, а лучше с хелловорлд начни
0
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
29.05.2017, 20:30  [ТС]
Разве это не передает параметр?
Java
1
HttpConnect=new HttpConnect(ss.accept());
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
29.05.2017, 20:32
Лучший ответ Сообщение было отмечено Lenster как решение

Решение

Цитата Сообщение от Lenster Посмотреть сообщение
args[0]
Цитата Сообщение от Lenster Посмотреть сообщение
ArrayIndexOutOfBoundsException
улавливаешь?
1
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
29.05.2017, 21:11  [ТС]
Да, понял ошибку, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2017, 21:11
Помогаю со студенческими работами здесь

Создать экземпляр одного класса в Main, и передать его в экземпляр другого класса
Добрый день. Подскажите пожалуйста. есть несколько классов-файлов в одном пакете. class one class two class main... Нужно...

Программа игнорирует gets()
#include <stdio.h> #include <locale.h> #include <string> #include <iostream> using namespace std; struct NOTE { char...

Программа игнорирует условия
Всем привет. Проблема. При выполнение данной программы выводит результат 4-х операций. Почему if не работает? Я имею ввиду, если...

Программа игнорирует break
скажите кто нибудь почему программа игнорирует break'и? #include <iostream.h> int menu(); int main() { int choice=menu(); ...

Программа игнорирует initgraph
Добрый день! Подскажите пожалуйста,использую модуль graph в процедуре. Программа просто проходит мимо initgraph(x, y,' ');. Ничего не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru