Java-Client PHP-Server UDP Código de ejemplo de perforación de agujeros

Estoy trabajando en un proyecto que requerirá un servidor ea p2p, pero no he encontrado ningún código de ejemplo de servidor php-server java-client. Entiendo el concepto de cómo funciona la perforación de agujeros udp, pero no puedo hacer que nada funcione en el código.

Lo que he intentado:

TheSocket.java

public class TheSocket {

public static String response = "hello";
public static String request;
public static String webServerAddress;

public static ServerSocket s;

protected static ServerSocket getServerSocket(int port)throws Exception{
    return new ServerSocket(port);
}

public static void handleRequest(Socket s){
    BufferedReader is;
    PrintWriter os;

    try{
        webServerAddress = s.getInetAddress().toString();
        is = new BufferedReader(new InputStreamReader(s.getInputStream()));

        request = is.readLine();

        System.out.println(request);

        os = new PrintWriter(s.getOutputStream(), true);
        os.println("HTTP/1.0 200");
        os.println("Content-type: text/html");
        os.println("Server-name: TheSocket");
        os.println("Content-length: " + response.length());
        os.println("");
        os.println(response);
        os.flush();
        os.close();
        s.close();

    }catch(Exception e){
        System.out.println("Failed to send response to client: " + e.getMessage());
    }finally{
        if(s != null){
            try{
                s.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
    return;
}
}

Main.java

public class Main {

public static void main(String[] args)throws Exception{
    TheSocket.s = TheSocket.getServerSocket(6789);
    while(true){
        Socket serverSocket = TheSocket.s.accept();
        TheSocket.handleRequest(serverSocket);
    }
}

PHP-CONNECT.php: para obtener el puerto de otros usuarios, me conecto manualmente y uso el puerto que se muestra en la página web.

<?php
    echo $_SERVER['REMOTE_ADDR'].':'.$_SERVER['REMOTE_PORT'];
?>

El problema con el código anterior es que no puede llegar al zócalo a menos que haga un puerto hacia adelante.

¡Comenta si tienes alguna pregunta!

Respuestas a la pregunta(1)

Su respuesta a la pregunta