Hier Senden ist mein Java-Server-Code:Daten von einem Java-Server in einer fortlaufenden Weise
public class CaspSocket {
private Socket socket = null;
private PrintWriter out = null;
private BufferedReader in = null;
public CaspSocket(InetAddress caspAddress, int caspPort) throws IOException {
socket = new Socket(caspAddress, caspPort);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
I "out" verwenden, um Daten zu senden
out.print(1 + "|");
out.print(2 + "|");
out.print(3 + "|");
Es in Gamemaker Studio aufgenommen werden als folgt:
var in_buff = ds_map_find_value(async_load, "buffer");
test_string=buffer_read(in_buff, buffer_string);
auf diese Weise alles in einem einzigen String gesetzt werden
test_string = "1 | 2 | 3 |"
Allerdings möchte ich die Daten in in einer aufeinander folgenden Weise erhalten
var in_buff = ds_map_find_value(async_load, "buffer");
test_string=buffer_read(in_buff, buffer_string);
test_string2=buffer_read(in_buff, buffer_string);
test_string3=buffer_read(in_buff, buffer_string);
test_string = "1 |" geben, test_string2 = "2 |" test_string3 = "3 |"
Wie sende ich Daten aus dem Java-Server in einer aufeinanderfolgenden Art und Weise, so dass jedes Datenpaket einzeln ausgelesen wird mit buffer_read(in_buff, buffer_string);
in Gamemaker Studio
Edit: Ich habe die Verwendung von Puffer-Leseabschnitt der Problem ist, wenn ich in Gamemaker Studio auf den Server mit dieser schicken:
buffer_seek(Buffer, buffer_seek_start, 0);
buffer_write(Buffer, buffer_string, string(1) + chr(10)); //chr(10) means new line
buffer_write(Buffer, buffer_string, string(2) + chr(10));
buffer_write(Buffer, buffer_string, string(3) + chr(10));
network_send_raw(Socket, Buffer, buffer_tell(Buffer));
der Java-Server nur wieder eine Zeichenfolge senden:
var in_buff = ds_map_find_value(async_load, "buffer");
buffer_read(in_buff, buffer_string);
Ich weiß nicht, wie diese der Reihe nach den Java-Server gesendet werden soll, wie es in GM empfangen werden kann: S:
var in_buff = ds_map_find_value(async_load, "buffer");
test_string=buffer_read(in_buff, buffer_string);
test_string2=buffer_read(in_buff, buffer_string);
test_string3=buffer_read(in_buff, buffer_string);
werde ich nur buffer_string verwenden die Dinge einfacher zu machen.
Danke! Ich habe Methode 2 vorher probiert, da ich mit Java nicht sehr erfahren bin. In GameMaker Studio wird der gesamte Inhalt in einer Variablen gespeichert und aufgeteilt. Dabei können jedoch auch andere Daten in derselben Variablen empfangen und gespeichert werden, wodurch Daten gemischt werden. Welcher Java-Code sollte in diesem Fall für Methode 1 verwendet werden? –
Aktivieren Sie die Option [Puffer verwenden] (https://docs.yoyogames.com/source/dadospice/002_reference/buffers/using%20buffers.html), um zu erfahren, wie Daten gesendet und gelesen werden können. –
Mit # 2 können Sie zentralisierte Leser haben, die später empfangene Nachrichten in Ihrer App-Basis auf Inhalte verteilen. –