Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Lenster
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 33
1

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

25.05.2017, 18:42. Просмотров 850. Ответов 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2017, 18:42
Ответы с готовыми решениями:

Игнорирует ли компилятор javac директиву -cp (иногда)?
Приходится изучать всякую фигню, вместо того, чтобы изучать программирование, а...

PaintComponent() игнорирует изменения в локальных переменных класса
Рисую в компоненте, наследованом от JPanel, используя Swing'овский...

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

Как создавать новый экземпляр в ArrayList
В массивах классов, чтобы создать новый экземпляр нужно было написать цикл...

Программа игнорирует gets()
#include <stdio.h> #include <locale.h> #include <string> #include <iostream>...

8
korvin_
2163 / 1652 / 320
Регистрация: 28.04.2012
Сообщений: 5,910
25.05.2017, 19:02 2
Цитата Сообщение от Lenster Посмотреть сообщение
Как решить проблему?
Присвоить его какой-нибудь переменной или полю или добавить в какую-нибудь коллекцию. // К. О.
1
Lenster
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 33
25.05.2017, 19:47  [ТС] 3
Теперь нет сообщения о том, что экземпляр игнорируется, но сервер все равно не работает, вызывается 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
korvin_
2163 / 1652 / 320
Регистрация: 28.04.2012
Сообщений: 5,910
25.05.2017, 20:12 4
Цитата Сообщение от Lenster Посмотреть сообщение
В чем может быть проблема?
В том, что ты веришь, будто мы телепаты и можем угадать, какой там у тебя exception?
0
Lenster
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 33
25.05.2017, 20:26  [ТС] 5
При запуске сервера срабатывает вот это:
Java
1
2
3
4
5
        catch(ArrayIndexOutOfBoundsException ae)
        {
            System.err.println("Usage: Server port");
            System.exit(0);
        }
0
xoraxax
1339 / 1281 / 378
Регистрация: 05.07.2013
Сообщений: 6,131
Завершенные тесты: 1
25.05.2017, 20:29 6
Цитата Сообщение от Lenster Посмотреть сообщение
Usage: Server port
так ты параметр то передай, а лучше с хелловорлд начни
0
Lenster
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 33
29.05.2017, 20:30  [ТС] 7
Разве это не передает параметр?
Java
1
HttpConnect=new HttpConnect(ss.accept());
0
xoraxax
1339 / 1281 / 378
Регистрация: 05.07.2013
Сообщений: 6,131
Завершенные тесты: 1
29.05.2017, 20:32 8
Лучший ответ Сообщение было отмечено Lenster как решение

Решение

Цитата Сообщение от Lenster Посмотреть сообщение
args[0]
Цитата Сообщение от Lenster Посмотреть сообщение
ArrayIndexOutOfBoundsException
улавливаешь?
1
Lenster
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 33
29.05.2017, 21:11  [ТС] 9
Да, понял ошибку, спасибо
0
29.05.2017, 21:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2017, 21:11

Программа игнорирует условия
Всем привет. Проблема. При выполнение данной программы выводит результат...

Программа игнорирует initgraph
Добрый день! Подскажите пожалуйста,использую модуль graph в процедуре....

Программа игнорирует break
скажите кто нибудь почему программа игнорирует break'и? #include <iostream.h>...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru