Hallo alle,
ich habe mal ein Spiel programmiert. Nun probiere ich, einen Multiplayer zu programmieren. Das geht soweit. Allerdings gibt es eine Verspatung von einer halben bis fünf Minuten.
Aufbau:
Empfänger A <-- Server 1 <-- Sender B
Sender A --> Server 2 -->Empfänger A
Empfänger A:
Client A:
Server 1:
Server 2:
Empfänger B:
Sender B:
Ich würde mich über eine baltige antwort freuen.
LG
PaZi
Windows 10 64 bit user
ich habe mal ein Spiel programmiert. Nun probiere ich, einen Multiplayer zu programmieren. Das geht soweit. Allerdings gibt es eine Verspatung von einer halben bis fünf Minuten.
Aufbau:
Empfänger A <-- Server 1 <-- Sender B
Sender A --> Server 2 -->Empfänger A
Empfänger A:
Code:
package Online;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Online {
public static void main (String[] args)
throws IOException, UnknownHostException {
Socket Anschluss = new Socket(Variablen.ip,4000);
PrintWriter Ausgabe= new PrintWriter(Anschluss.getOutputStream(),true);
InputStreamReader PortLeser=new InputStreamReader(Anschluss.getInputStream());
BufferedReader Eingabe= new BufferedReader(PortLeser);
while(true){
/*try {
Thread.sleep(20);
} catch (InterruptedException e) {e.printStackTrace();}*/
System.out.println("Entfangen");
String S =Eingabe.readLine();
System.out.println(S);
try{
String[] splitStr = S.split("\\s+");
Variablen.player_b_y = Integer.parseInt(splitStr[0]);
Variablen.player_b_x = Integer.parseInt(splitStr[1]);
Variablen.dotsb = Integer.parseInt(splitStr[2]);
}catch(NullPointerException e){}
catch(ArrayIndexOutOfBoundsException e){}
}}}
Client A:
Code:
package Online;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main (String[] args)
throws IOException, UnknownHostException {
Socket Anschluss = new Socket("localhost",4001);
PrintWriter Ausgabe= new PrintWriter(Anschluss.getOutputStream(),true);
InputStreamReader PortLeser=new InputStreamReader(Anschluss.getInputStream());
BufferedReader Eingabe= new BufferedReader(PortLeser);
while(true){
/*try {
Thread.sleep(20);
} catch (InterruptedException e) {e.printStackTrace();}*/
Ausgabe.println(Variablen.player_y +" "+ Variablen.player_x + " " + Variablen.dots + " " + Variablen.hy +" "+ Variablen.hx);
}}}
Server 1:
Code:
package Server;
import java.net.*; import java.io.*;
public class Server {
static public String S = null;
public static void main (String[] args) throws IOException {
ServerSocket anschluss = new ServerSocket(4001);
System.out.println("Ich lausche.");
Socket lauschen=anschluss.accept();
System.out.println("Player A has connected!");
Socket lauschen1=anschluss.accept();
System.out.println("Player B has connected!");
InputStreamReader PortLeser= new InputStreamReader(lauschen.getInputStream());
BufferedReader Eingabe= new BufferedReader(PortLeser);
PrintWriter Ausgabe= new PrintWriter(lauschen1.getOutputStream(),true);
while (true) {
try {
S = Eingabe.readLine();
System.out.println("klick " + S);
Ausgabe.println(S);
} catch (IOException e) {e.printStackTrace();}
}
}}
Server 2:
Code:
package Server;
import java.net.*; import java.io.*;
public class Server2 {
static public String S = null;
public static void main (String[] args) throws IOException {
ServerSocket anschluss = new ServerSocket(4000);
System.out.println("Ich lausche.");
Socket lauschen=anschluss.accept();
System.out.println("Player A has connected!");
Socket lauschen1=anschluss.accept();
System.out.println("Player B has connected!");
InputStreamReader PortLeser= new InputStreamReader(lauschen1.getInputStream());
BufferedReader Eingabe= new BufferedReader(PortLeser);
PrintWriter Ausgabe= new PrintWriter(lauschen.getOutputStream(),true);
while (true) {
try {
S = Eingabe.readLine();
Ausgabe.println(S);
} catch (IOException e) {e.printStackTrace();}
System.out.println(S);
}
}}
Empfänger B:
Code:
package Online;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Onlineb {
static String S = null;
public static void main (String[] args)
throws IOException, UnknownHostException {
Socket Anschluss = new Socket(Variablen.ip,4001);
PrintWriter Ausgabe= new PrintWriter(Anschluss.getOutputStream(),true);
InputStreamReader PortLeser=new InputStreamReader(Anschluss.getInputStream());
BufferedReader Eingabe= new BufferedReader(PortLeser);
while(true){
/*try {
Thread.sleep(20);
} catch (InterruptedException e) {e.printStackTrace();}*/
S =Eingabe.readLine();
System.out.println(S);
System.out.println("Empfangenb");
try{
String[] splitStr = S.split("\\s+");
Variablen.player_y = Integer.parseInt(splitStr[0]);
Variablen.player_x = Integer.parseInt(splitStr[1]);
Variablen.dots = Integer.parseInt(splitStr[2]);
Variablen.hy = Integer.parseInt(splitStr[3]);
Variablen.hx = Integer.parseInt(splitStr[4]);
}catch(NullPointerException e){}
catch(java.lang.ArrayIndexOutOfBoundsException e){}
}}}
Sender B:
Code:
package Online;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client_b {
public static void main (String[] args)
throws IOException, UnknownHostException {
Socket Anschluss = new Socket("localhost",4000);
PrintWriter Ausgabe= new PrintWriter(Anschluss.getOutputStream(),true);
InputStreamReader PortLeser=new InputStreamReader(Anschluss.getInputStream());
BufferedReader Eingabe= new BufferedReader(PortLeser);
while(true){
/*try {
Thread.sleep(20);
} catch (InterruptedException e) {e.printStackTrace();}*/
Ausgabe.println(Variablen.player_b_y +" "+ Variablen.player_b_x + " " + Variablen.dotsb);
System.out.println("Gesendetb");
}}}
Ich würde mich über eine baltige antwort freuen.
LG
PaZi
Windows 10 64 bit user