Ich habe ein real Android-Gerät an einen Computer über USB angeschlossen. Ich habe es geschafft, TCP Portweiterleitung mit adb forward tcp:<port> tcp:<port>
zu aktivieren und erfolgreich mit Sockets zu kommunizieren, aber ich weiß nicht, wie das gleiche für UDP zu tun.Wie kann ich die UDP-Weiterleitung für USB-Kommunikation zwischen einem PC und einer Android-App aktivieren?
EDIT v1: Ich startete meine Anwendung auf dem Emulator und eingegeben telnet localhost 5554
und redir add udp:<port>:<port>
und es gearbeitet, meine Funktion executeCMD ist functionnal, denn wenn ich ls
versuchen es funktioniert.
Einige sagten Websites redir
wie diese verwenden redir add udp:<port>:<port>
aber wenn ich so erhalte ich einen Fehler:
usage:
redir --lport=<n> --cport=<n> [options]
redir --inetd --cport=<n>
Options are:-
--lport=<n> port to listen on
--laddr=IP address of interface to listen on
--cport=<n> port to connect to
--caddr=<host> remote host to connect to
--inetd run from inetd
--debug output debugging info
--timeout=<n> set timeout to n seconds
--syslog log messages to syslog
--name=<str> tag syslog messages with 'str'
--connect=<str> CONNECT string passed to proxy server
--bind_addr=IP bind() outgoing IP to given addr
--ftp=<type> redirect ftp connections
where type is either port, pasv, both
--transproxy run in linux's transparent proxy mode
--bufsize=<octets> size of the buffer
--max_bandwidth=<bit-per-sec> limit the bandwidth
--random_wait=<millisec> wait before each packet
--wait_in_out=<flag> 1 wait for in, 2 out, 3 in&out
Version 2.2.1.
Dann dachte ich, dieser Befehl Einführung auf dem Android-Gerät sein soll, damit ich diese Methode erstellt:
public String executeCMD(String cmd){
StringBuffer output = new StringBuffer();
try{
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
while ((read = reader.read(buffer)) > 0) output.append(buffer, 0, read);
reader.close();
process.waitFor();
} catch(IOException e){ e.printStackTrace();
} catch(InterruptedException e){ e.printStackTrace(); }
return output.toString();
}
Und wenn ich es so genannt:
executeCMD("redir add udp:" + UDP_PORT + ":" + UDP_PORT)
Ich bekomme keine Ausgabe und der UDP Server auf der Android App kann nicht mit dem UDP Client kommunizieren.
Also bin ich ein bisschen verloren ... Ich werde weiter suchen, aber wenn Sie mir helfen können; gehen Sie geradeaus.
Danke.