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

Proxy Server + IE

05.06.2014, 13:51. Показов 7218. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал простенький HTTP прокси сервер на java. Поставил настройки прокси для localhost. Запускаю браузер хром, ввожу гугл.ком - все работает. Тоже самое проделал в IE - страницу не грузит, причем для некоторых сайтов он работает.
В чем может быть проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.06.2014, 13:51
Ответы с готовыми решениями:

Proxy server
Приветствую. Необходимо сделать локальный прокси сервер, который будет заменять файл из интернета на локальный. Например гружу с интернета...

Proxy Server + Wi-FI
Такой вопрос. Есть Маршрутизатор (Debian) На нём стоит прокси (Sams). Даёт интернет соотвецтвенно по IP. Как можно сделать, чтоб через...

Proxy server на ноутбуке
Здравствуйте! Заинтересовал один вопрос, хочу установить на ноутбуке прокси сервер, чтобы раздавать интернет по локальной сети провайдера....

3
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
05.06.2014, 18:43
без подробного описание проблемы (исключения, поведение кода) можно только тыкать пальцем в небо.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
05.06.2014, 19:49
Penoplast, Проблема в реализации прокси сервера.
Или в настройках IE
0
3 / 3 / 0
Регистрация: 14.09.2012
Сообщений: 84
05.06.2014, 21:00  [ТС]
Собственно вот реализация.

Main.java
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
import java.io.IOException;
 
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //Определяем порт
        int port = 443;
        try {
            port = Integer.parseInt(args[0]);
        } catch (Exception e) {
            System.out.println("No or invalid port in args. Use default.");
        }
        
        //запускаем сервер
        try {
            ProxyServer p = new ProxyServer(port);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
 
}
ProxyServer.java
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
import java.net.*;
import java.io. *;
 
public class ProxyServer{
    ProxyServer(int port) throws IOException{
        ServerSocket serverSocket = null;
        boolean listening = true;
 
        try{
            serverSocket = new ServerSocket(port);
            System.out.println("Started on: " + port);
        } 
        catch (IOException e) {
            System.err.println("Could not listen on port: " + port);
            System.exit(-1);
        }
 
        //принимаем пльзователей в отдельном потоке
        while (listening){
            new ProxyServerThread(serverSocket.accept()).start();
        }
        serverSocket.close();
    }
}

ProxyServerThread.java
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
import java.net.*;
import java.io.*;
import java.util.*;
 
public class ProxyServerThread extends Thread{
     BufferedReader    rd = null;
     DataOutputStream out = null;
     BufferedReader    in = null;
    private Socket socket = null;
    private static final int BUFFER_SIZE = 32768;
    
    public ProxyServerThread(Socket socket){
        super("ProxyThread");
        this.socket = socket;
    }
 
    public void run() {
        // get input from user
        // send request to server
        // get response from server
        // send response to user
        try{
            out = new DataOutputStream(socket.getOutputStream());
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
 
            String inputLine;
            int cnt = 0;
            String urlToCall = "";
 
            // begin get request from client
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);
                try {
                    StringTokenizer tok = new StringTokenizer(inputLine);
                    tok.nextToken();
                }
                catch (Exception e) {
                    break;
                }
                //parse the first line of the request to find the url
                if (cnt == 0) {
                    String[] tokens = inputLine.split(" ");
                    urlToCall = tokens[1];
                    //can redirect this to output log
                    System.out.println("Request for : " + urlToCall);
                }
 
                cnt++;
            }
            //end get request from client
 
            //BufferedReader rd = null;
            try {
                //begin send request to server, get response from server
                URL url = new URL(urlToCall);
                URLConnection conn = url.openConnection();
                conn.setDoInput(true);
                //not doing HTTP posts
                conn.setDoOutput(false);
  
                // Get the response
                InputStream is = null;
                //  HttpURLConnection huc = (HttpURLConnection)conn;
                if ( (conn.getContentLength() > 0) || (conn.getContentLength() == -1)) {
                    try {
                        is = conn.getInputStream();
                        rd = new BufferedReader(new InputStreamReader(is));
                    } 
                    catch (IOException ioe) {
                        System.out.println("********* IO EXCEPTION **********: " + ioe);
                    }
                }
                //end send request to server, get response from server
 
                //begin send response to client
                try {
                    if(is !=  null){
                        byte by[] = new byte[ BUFFER_SIZE ];
                        int index = is.read( by, 0, BUFFER_SIZE );
                        out.writeBytes("HTTP/1.1 200 OK\nContent-Type: "+conn.getContentType()+"\nContent-Length: "+conn.getContentLength()+"\n\n");
                        while ( index != -1 ){
                          out.write( by, 0, index );
                         // outputDebug+=by;
                          index = is.read( by, 0, BUFFER_SIZE );
                        }
                        out.flush();
                        //System.out.println(outputDebug);
                    }
                    else{
                        System.err.println("Input sream is null");
                    }
                }
                catch (Exception e) {
                    System.err.println("cant write to socket");
                    e.printStackTrace();
                }
                finally{
                    closeSockets();
                }
 
                //end send response to client
 
            }
            catch (Exception e){
                //can redirect this to error log
                System.err.println("Encountered exception: " + e);
                //encountered error - just send nothing back, so
                //processing can continue
                out.writeBytes("");
            }
            finally{
                closeSockets();
            }
        
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        finally{
            closeSockets();
        }
       
    }
    
    void closeSockets(){
         //close out all resources
        if (rd != null){
            try{
                rd.close();
            } 
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (out != null){
            try {
                out.close();
            } 
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (in != null){
            try {
                in.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (socket != null){
            try{
                socket.close();
            }
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.06.2014, 21:00
Помогаю со студенческими работами здесь

Proxy server и файрвол
Подскажите, пожалуйста како либо бесплатный прокси сервер для установки на свой ноут, через который подключаются 10 ПК. Цель: Видеть, куда...

Proxy server не работает
Извините если ошибся с разделом. у меня нет доступа к определенным сайтам и при использование прокси сервера такая же проблема доступ нет в...

Proxy Server не работает
Не могу найти ошибку в коде. /* * Пример к статье «Разработка прокси-сервера» *...

TCP Proxy Server
Добрый день ув. пользователи.В общем появилась необходимость написать прокси сервер.Задача такая - Создаем сокет на локал хосте ,...

Socks Proxy Server
Нужно написать проксификатор(Socks 5) В интернете мало информации на эту тему, единственное что нашел в приложениях,и то даже не...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru