我有一个套接字连接到代理,然后连接到我指定的远程服务器。但是我希望从代理中删除服务器的多个连接。所以我想为同一个代理创建4个套接字,并从4个套接字连接到远程服务器。
当我这样做时它不起作用,它只连接到代理一次。
这是伪代码:
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 :(得分:0)
听起来您没有使用线程,而是尝试按顺序连接到代理。
既然你没有发布问题的样本很难出手。
尝试运行您的程序4次,以查看问题是在您的代码中还是在代理中。
我希望这会有所帮助。
答案 1 :(得分:0)
如果您没有使用线程,除非转到非阻塞I / O,否则无法正确执行此操作。