2010-09-23 2 views
0

У меня есть сокет, подключающийся к прокси-серверу, а затем к удаленному серверу, который я указываю. Однако я хочу, чтобы несколько соединений с сервером удалялись из прокси. Поэтому я хочу создать 4 сокета для одного и того же прокси и из 4 сокетов подключиться к удаленному серверу.Проблема сокета/прокси в java

Когда я это делаю, он не работает, он только подключается к прокси-серверу один раз.

Вот код псевдо:

static Socket[] liveCon = new Socket[300]; 
// This is the class that assigns a proxy and connects 
// it is a temporary thread that connects and ends. 
sockClass sockets = new sockClass; 

class main { 
    for (int i = 0; i < livecon.length; i++) { 
     sockets[i].start(); // Thread ends after it is connected 
    } 
} 

class sockClass{ 
    main.liveCon[index] = new Socket(proxy); 
    main.liveCon[index].connect(ep); 
    main.liveCon[index].setPerformancePreferences(1, 2, 0); 
    if (main.liveCon[index].isConnected() == true) { 
     myOutput = new PrintStream(main.liveCon[index].getOutputStream()); 
     main.liveCon[index].setKeepAlive(true); 
    } 
} 

ответ

0

Похоже, вы не используете темы, но вместо этого вы пытаетесь подключиться к прокси-последовательно.

Так как вы не публикуете образец проблемы, трудно решить проблему.

Попробуйте запустить программу 4 раза, чтобы узнать, есть ли проблема в вашем коде или в прокси-сервере.

Надеюсь, это поможет.

+0

Да, я не использую threading, im используя массив сокетов. Разве это не проблема с подключением соединений? Если это так, я могу исправить это, не прибегая к потоковому использованию. – Kalman123

+0

Использование различных программ. Проблема в. У вас есть массив сокетов, правый, второй сокет будет подключаться только после первого окончания, а третий - только после второго и т. Д. Итак, вы подключаете их последовательно, когда то, что вы хотите, должно быть подключено параллельно. Разве это не так сложно (когда вы знаете, как это сделать: P как с чем-либо) Но это основная проблема, с которой вы сталкиваетесь. – OscarRyz

+0

Почему вам нужно подключать 4 разъема одновременно? – Kalman123

0

Если вы не используете потоковую передачу, вы не можете сделать это правильно, если не перейдете к неблокирующему вводу/выводу.

+0

Я не понимаю, почему это проблема. Все мои сокеты пытаются подключиться к единственному прокси-серверу, но только 1 успешно соединяется. Можете ли вы объяснить, почему это происходит? – Kalman123

+0

Не обойдя свой код. Но это бессмысленно, как есть. Исправьте, чтобы использовать поток для каждого сокета, и есть некоторые моменты для обсуждения. – EJP

+0

Я добавил код psuedo к основному сообщению – Kalman123