RCON Tool für Gameserver

Status
Nicht offen für weitere Antworten.

hgmichael

Mitglied
Hallo,

ich habe vor mir ein kleines Tool zu machen, mit dem nur einen Befehl an einen Server senden möchte..

Nach Konsultation meiner Fachlektüre und Google ist das wohl nur über ein DatagramPacket möglich. Habe mir dazu nach bestem Wissen auch etwas zusammengebastelt nur irgendwie kommt beim Server wohl nichts an (in der shell konsole sollte was passieren).

Code:
import java.net.InetAddress;
import java.net.*;
import java.util.*;

public class rcon {


    public static void main(String[] args) throws IOException, InterruptedException {
       
        InetAddress ia = InetAddress.getByName("xxx.xxx.xxx.xxx");
       
        while (true)
        {
        String s ="rcon login\"passwort\" status";
        byte[] data = s.getBytes();
        DatagramPacket packet = new DatagramPacket (data, data.length, ia, 41000);
        DatagramSocket toSocket = new DatagramSocket();
        toSocket.connect(ia, 41000);
        toSocket.send(packet);


        }
}
}


Habe mich auch hier im Forum umgesehen und bin dabei auf diesen Beitrag gestoßen. Leider bringt mich das der Lösung nicht näher.


http://www.java-forum.org/de/viewtopic.php?t=40083&highlight=rcon

Ports sind bei mir alle offen, daran kann es also nicht liegen. Für einen Verbesserungsvorschlag wäre ich dankbar.[/code]
 

Pappenheimer++

Bekanntes Mitglied
Tja, was heißt hier anscheinend? Das Problem bei UDP ist ja, dass du kein ACK auf der Transportschicht zurückkriegst. D.h. man kann deinem Client hier ja nicht ansehen, ob das Paket angekommen ist. In dem Code hier sehe ich keine Fehler, also: Ist der Server von dir? Bist du ganz sicher, dass das nicht angekommen ist? Oder vllt hast du nur was gesendet, was nicht dem Application-Layer-Protocol des Servers entsprach und daher still und heimlich verworfen wurde?
 

hgmichael

Mitglied
danke für die antwort.

der server ist von mir und während der läuft schaue ich bei meinen test in die konsole des selbigen. ich habe mit einem anderen porgramm einfach mal müll geschickt und es stand im server zumindest, dass von ip xxxxxxxx das und das geschickt wurde und der befehl nicht bekannt ist.

wenn ich nun mit meinem tool was schicke passiert gar nichts. dass paket nicht das richtige format hat kann ich natürlich nicht ganz ausschließen. werde mal mein google nochmal quälen und dann berichten.
 
S

Sheppard

Gast
Hallo,

ich habe auch ein Problem bezüglich Datenempfang!

Ich habe folgende Methode:

Code:
public static String sendRcon(String address, int port, String password, String command) throws SocketException, IOException {
        byte[] header = { (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff };
        byte[] body = ("rcon " + password + " " + command).getBytes();
        byte[] buf = new byte[1024];
        System.arraycopy(header, 0, buf, 0, header.length);
        System.arraycopy(body, 0, buf, header.length, body.length);
        DatagramPacket dp = new DatagramPacket(buf, buf.length, new InetSocketAddress(address, port));
        DatagramSocket ds = new DatagramSocket();
        ds.send(dp);
        ds.receive(dp);
        String data = new String(dp.getData());       
        return data;
    }

sie funktioniert soweit, wenn ich die Methode folgendermaßen aufrufe:

Code:
public static String getServerName() 
    {
    	String name = null;
    	try 
    	{
           name = sendRcon("195.225.198.150", 28970, "rconPasswortr", "sv_hostname");
        } 
    	catch (Exception e) {e.printStackTrace();}
		
    	name = name.substring(29);
    	String[] tokens = name.split("\" default:");
    	name=tokens[0];
    	return name;
    }

Die Ausgabe ist dann der Server-Name. Also die gesendete Anfrage wird korrekt übermittelt und das empfangene Paket korrekt ausgewertet.

Nun habe ich in meinem Programm mehrere solcher Methoden wie getServerName() z.B. getMaxClients() diese Methode funktioniert ebenfalls.



Mein Problem ist, wenn ich nun beide Methoden aufrufe:

Beispiel main

Code:
public static void main(String[] args) 
    {
    	String hostName = getServerName();
    	String maxClients = getMaxClients();
    	
    	System.out.println(hostName+" "+maxClients);
        
    }


dann startet das Programm es gibt aber keine Ausgabe und das Programm endet auch nicht wieder von alleine!?


Ich wäre sehr Dankbar für Tipps


MfG Sheppard
 

HoaX

Top Contributor
mal den debugger genommen wos hängt? bzw debugausgaben eingebaut?

eine vermutung wäre dass du nach ds.receive noch ein ds.close aufrufen musst da sonst beim zweiten versuch das receive hängt da immernoch der andere socket auf den port gebunden ist. wobei da imho eigentlich ne exception fliegen sollte.
 
Bei mir klappts mit dem gleichen Code wenn ich das Programm zwischendurch pausiere (eine oder eine halbe sekunde weiss nicht mehr genau) ...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Socket Remote Administration Tool / Fernwartungsprogramm Netzwerkprogrammierung 9
B RMI und Problem mit rmic-Tool Netzwerkprogrammierung 3
H ssh-Tool mit Java Netzwerkprogrammierung 6
M VoIP Tool entwickeln Netzwerkprogrammierung 7
S Java Geocoding Tool Netzwerkprogrammierung 12
G Tool wie Teamviewer Netzwerkprogrammierung 3
N Tool Netzverkehr Netzwerkprogrammierung 3
S Tool zum Beobachten der Pakete Netzwerkprogrammierung 7
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
FrankenDerStein Socket UDP Multithreading für ein Port Netzwerkprogrammierung 2
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
B Webview für Anwendung Netzwerkprogrammierung 7
M Sicheres Login-System für App implementieren Netzwerkprogrammierung 6
J Netty umsetzung für ein Protokoll Netzwerkprogrammierung 1
J ERM für kleine Verwaltungsdatenbank Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
Messoras Launcher für mein Spiel Netzwerkprogrammierung 7
F Einfaches Gateway für Log-Files Netzwerkprogrammierung 1
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
P PPTP Protokoll für JAVA Netzwerkprogrammierung 14
T FTP Wie Notwendigkeit für "rekey" klientenseitig detektieren? Netzwerkprogrammierung 3
S Webserver für Jar File Netzwerkprogrammierung 4
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
M Erreichbar für alle zu sein Netzwerkprogrammierung 9
M Server nur für eine Aufgabe Netzwerkprogrammierung 2
N Selbes URL Objekt für alle Requests nutzen Netzwerkprogrammierung 7
T uberspace.de als (v)root-Ersatz für kleinere Java-Anwendungen? Netzwerkprogrammierung 12
L Proxy für Dateidownload? Netzwerkprogrammierung 3
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Socket Leitstelle für Funkspiel Netzwerkprogrammierung 8
F Java-Beispielcode für Zeroconf (ähnlich Apple Bonjour) Netzwerkprogrammierung 7
I HTTP S - Zertifikate+Cockies für Form-basierten Login Netzwerkprogrammierung 2
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
N RMI Einstellungen für "übers Internet" Netzwerkprogrammierung 8
F SSL-Zertifikate für viele Nutzer? Netzwerkprogrammierung 8
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
S wie stell man die classpath für JARs? Netzwerkprogrammierung 3
M Bestimmte Klassen für Netzwerkchecks gesucht Netzwerkprogrammierung 11
M ClassLoader für Axis2 setzen Netzwerkprogrammierung 15
M Welches Speicherformat für News-Database?? Netzwerkprogrammierung 2
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
P Proxy für Anwendung setzten Netzwerkprogrammierung 3
T Bezeichner "end of line" für die Funktion readline Netzwerkprogrammierung 5
A DataGramsocket Übertragungsproblem im Internet (IPs für Voip) Netzwerkprogrammierung 5
E Userliste für Chat Applet Netzwerkprogrammierung 4
S HTTP Kleines Programm für den Routerneustart Netzwerkprogrammierung 3
L Zeitspanne für erneutes senden Netzwerkprogrammierung 16
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
F Netzwerkprogrammierung für Anfänger Netzwerkprogrammierung 2
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
B Variablen ausrichten für Übertragung Netzwerkprogrammierung 2
D FTP Pfadangabe für ftp-upload funktioniert nicht Netzwerkprogrammierung 5
K Getrennte Rechner für RMI-Server/RMI-Registry, bzw. Alternativen? Netzwerkprogrammierung 5
dayaftereh HTTPCleint und HTMLparser für hTTpBot Netzwerkprogrammierung 2
E Socket Client-Applikation mit GUI für Internet IO-Platine Netzwerkprogrammierung 2
0din Grundlage für Bluetooth Netzwerkprogrammierung 5
N "Jungfernflug" der Socketprogrammierung für ein Mühlespiel Netzwerkprogrammierung 8
F Empfehlung für embedded Webserver Netzwerkprogrammierung 10
W Bibliothek für Certificate Management Protocol (CMP) Netzwerkprogrammierung 3
O Client/Server für Ticker Netzwerkprogrammierung 2
J Stubs für SOAP-Webservice generieren. Ich bekomme es einfach nicht hin... Netzwerkprogrammierung 3
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
G FileDialog für FTP Client Netzwerkprogrammierung 2
P Welches Protokoll für RMI verwenden? Netzwerkprogrammierung 10
A Wichtig für einen Chat? Netzwerkprogrammierung 4
D Was für Verbindungen mit Socket möglich? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
W Was für ein Stream soll ich verwenden? Netzwerkprogrammierung 8
A Rezept für Webservices Netzwerkprogrammierung 5
I unc pfad für die klasse file? Netzwerkprogrammierung 4
P eine BufferedReader für alles ankommende Netzwerkprogrammierung 2
T Filter für Input UND OutputStream Netzwerkprogrammierung 4
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
G server für mein spiel. Netzwerkprogrammierung 5
M Log In Programm für Seiten Netzwerkprogrammierung 2
G Netzwerkprogrammierung für spiele Netzwerkprogrammierung 2
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
S Server für Internetspiel Netzwerkprogrammierung 2
G Objecte für Kommunikation nutzen Netzwerkprogrammierung 2
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
S Voreinstellungen für JavaMail Netzwerkprogrammierung 2
S Idee für Projekt auf Agentenbasis Netzwerkprogrammierung 8
S Suche API für einfachen HTTP-Zugriff. Netzwerkprogrammierung 17
G benötige Beispiel für parallel ablaufende Threads Netzwerkprogrammierung 3
M RMI - Ein Objekt für Alle? Netzwerkprogrammierung 5
Z Protokoll für Schiffeversenken Netzwerkprogrammierung 5
T Kann man jeden Port für Programm verwenden? Netzwerkprogrammierung 2
R proxy für java anwendung angeben [resolved] Netzwerkprogrammierung 15
B Wie Router einstellen für CLient-Server-Programm? Netzwerkprogrammierung 4
R PPTP Protokoll für JAVA Netzwerkprogrammierung 3
Icewind Klasse für DNS Anfragen Netzwerkprogrammierung 14
P Welche Art von Sockets für ein Spiel? Netzwerkprogrammierung 3

Ähnliche Java Themen


Oben