Java代理套接字未连接到客户端

Java代理套接字未连接到客户端,java,sockets,proxy,Java,Sockets,Proxy,我将在下面发布我的代码,一点背景。 我正在尝试连接到端口9339上的游戏服务器。我的本地端口每次都会更改。其目的是通过代理传递数据包,并在命令行中显示信息 客户端使用运行游戏的Bluestack连接到远程主机 代码: 基本上,最后打印出来的内容是“在端口上启动gamea.clashofclans.com:9339的代理”(无论它选择什么) 希望有人能帮助我。您的代码是正确的。它工作正常,因此不需要任何修复。发生的情况是,代理类中的serverSocket正在等待客户端连接。这就是它无法继续的原因

我将在下面发布我的代码,一点背景。 我正在尝试连接到端口9339上的游戏服务器。我的本地端口每次都会更改。其目的是通过代理传递数据包,并在命令行中显示信息

客户端使用运行游戏的Bluestack连接到远程主机

代码:

基本上,最后打印出来的内容是“在端口上启动gamea.clashofclans.com:9339的代理”(无论它选择什么)


希望有人能帮助我。

您的代码是正确的。它工作正常,因此不需要任何修复。发生的情况是,代理类中的serverSocket正在等待客户端连接。这就是它无法继续的原因。您需要做的是创建一个客户端并连接到它

按照以下步骤操作:

  • 运行您的代理
  • 然后运行你的客户
  • 对于客户端,您可以使用此代码

        public static void main(String[] args) throws IOException {
        try {
            int remoteport = 9339;
            String host="127.0.0.1";
            makeConnection(host, remoteport);
            System.out.println("connection successful!");
        } catch (Exception e) {
            System.err.println(e);
        }
    }
    
    public static void makeConnection(String host, int remoteport)  throws IOException {
    
        while (true) {
            Socket client = null;
            try {
                client = new Socket(host, remoteport);
                System.out.println("Client connected to server.");
                break;
            } catch (IOException e) {
                System.err.println(e);
            } finally {
                    if (client != null)
                        client.close();
                    if (client != null)
                        client.close();
            }
        }
    }
    

    我也有这个问题,我没有足够的时间来纠正这个问题,但我认为使用线程是所有错误的原因

    检查您的代理是否使用浏览器设置(可能是代理有问题)

    如果没有,,
    我建议不要使用线程。可能会出现互斥现象。

    我看不出循环失败或在runserver方法中退出时有任何情况。因此我猜你的循环会永远运行。这可能是问题所在。此外,你还有很多异常,整个跟踪都被你的代码吃掉了。请至少打印它们,看看你是否会遇到任何异常。@Jimmy不确定你的意思。.当(true){…}退出时,你实现了什么吗?你可能想在某个地方添加
    中断
    ;可能在服务器关闭后。也不要离开
    捕获(IOException e){
    。打印它。好的,我添加了一些错误处理,并在服务器关闭时添加了一个中断,但仍然没有运气。仍然只有相同的1输出行。我必须将游戏配置为通过代理或其他方式吗?你可以参考下面的答案。希望它能帮助解决这个问题,现在我得到了一个无限循环(即使游戏没有运行)客户端连接到服务器“这应该是另一个问题。请用适当的标题为该主题发布另一个问题。您的连接问题已修复。您的代码中有许多逻辑问题。如果这个答案对您有帮助,请将其标记为已解决。在下一个问题中给我贴上标签,这样我就可以为您提供循环和代理未启动问题的解决方案。您可以在您的日志中看到来自我的客户机的请求进入您的服务器。他不是“只编写客户机”。他正在写一份委托书。他需要服务器插座。@EJP我就是这么想的,我应该把它放回原样,等待另一个答案吗?
        public static void main(String[] args) throws IOException {
        try {
            int remoteport = 9339;
            String host="127.0.0.1";
            makeConnection(host, remoteport);
            System.out.println("connection successful!");
        } catch (Exception e) {
            System.err.println(e);
        }
    }
    
    public static void makeConnection(String host, int remoteport)  throws IOException {
    
        while (true) {
            Socket client = null;
            try {
                client = new Socket(host, remoteport);
                System.out.println("Client connected to server.");
                break;
            } catch (IOException e) {
                System.err.println(e);
            } finally {
                    if (client != null)
                        client.close();
                    if (client != null)
                        client.close();
            }
        }
    }