Server/Client für Spiel

Rastarockett

Mitglied
Hi,
ich schreib für die Uni ein Spiel und da ein Kommilitone aus dem Team ausgeschieden ist, bleibt jetzt an mir unerwarteterweise auch die Netzwerkunterstützung hängen, obwohl ich mich damit nicht gerade toll auskenne :eek:

Ich habe einen Server und einen Client geschrieben, die sich jeweils gegenseitig die Tastatureingaben des anderen spielers empfangen und die eigenen (game.e) senden können.
Selbstverständlich haute das auf anhieb nicht hin: Der Client bekommt eine Connection reset Socket Exception, wenn ich receive() auf ihm zum ersten mal ausführe. Der Server scheint ganz gut zu senden. Ich weiß allerdings nicht wirklich woran das liegt, da ich bis jetzt nur ganz einfaches Netzwerkzeugs gemacht hab :(
Die Methoden send() und receive () werden von einem anderen Thread (relativ schnell hintereinander) immerwieder aufgerufen.
Es wäre total klasse, wenn sich jemand mal das anschauen könnte und mir einen Tipp gibt:

Server:
Java:
package Game;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class MulServer
{
	Application game= Inter.game;
  private final ServerSocket server;
  public  Socket client = null;
  public MulServer( int port ) throws IOException
  {
    server = new ServerSocket( port );
  }
  public void startServing()
  {
    while ( client == null)
    {
   
      try
      {
        client = server.accept();
        System.out.println("Connection established");
      }
      catch ( IOException e ) {
        e.printStackTrace();
      }
  
    }
  }
  public void send( ) 
  {
	 
    OutputStream out;
	try {
		out = client.getOutputStream();
		out.write( game.e );
	} catch (IOException e) {

		e.printStackTrace();
	}
   
    
  }
 
  public void receive()
  {
	  InputStream in;
	try {
		 client = server.accept();
		in = client.getInputStream();
		int incoming = in.read();
		Inter.aimovement=incoming;
	    System.out.println(incoming);
	} catch (IOException e) {
		e.printStackTrace();
	}
	  
	  
  }
}

Und der Client:

Java:
package Game;
import java.net.*;
import java.io.*;
class MulClient
{
	InputStream in;
	OutputStream out;
	Application game;
	Socket server;
	
	// Constructor: The connection to the server is established:
  public MulClient()
  {
    server = null;
    // Reference on game is copied:
    Application game = Inter.game;
    try
    {
      server = new Socket( "localhost", 3141 );
       in = server.getInputStream();
      out = server.getOutputStream();
      
    }
    catch ( UnknownHostException e ) {
      e.printStackTrace();
    }
    catch ( IOException e ) {
      e.printStackTrace();
    }
   
    }
  
  
  public void send()
  {
	  
	  try
	    {
	     
	       in = server.getInputStream();
	      out = server.getOutputStream();
	
	      
	    }
	    catch ( UnknownHostException e ) {
	      e.printStackTrace();
	    }
	    catch ( IOException e ) {
	      e.printStackTrace();
	    }
	   
	  try {
		out.write( game.e );
	} catch (IOException e) {

		e.printStackTrace();
	}
      
  }
  
  public void receive()
  {
	try {
		int incoming = in.read();
		Inter.aimovement=incoming;
		System.out.println( incoming );
	} catch (IOException e) {

		e.printStackTrace();
	}
      
  }
}
 

TKausL

Top Contributor
In deiner Recieve vom Server liegt das Problem. Du darfst natürlich nachdem du deinen Clienten "angenommen" (accepted) hast, nicht jedesmal beim Empfangen einen neuen Clienten annehmen.
 
I

irgendjemand

Gast
mal davon abgesehen das es zum schlechten stil gehört wenn du jedes mal beim callen der i/o-methoden dir neue stream-objekte holst liegt der fehler ganz klar in deiner receive-methode im server
Java:
client=server.accept();
damit wartest du jedes mal auf einen neuen clienten was natürlich in nem timeout scheitert ...
*wesshalb ich "connection reset" auch nicht ganz verstehe*

auch böse ist das hier
Java:
Application game=Inter.game;

machst du das alles im static context ? andernfalls würde das normalerweise gar nicht compile bar sein ...

auch ist deine formatierung nicht die schönste ... gewöhne dir an TAB zu nutzen anstatt kilometer von leerzeichen ... *steht glaub auch so in den conventions*
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I lokales Programm mit Client/Server Programm kommunizieren Java Basics - Anfänger-Themen 3
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
K Java Client > Python Server Java Basics - Anfänger-Themen 0
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
E Client Server Java Basics - Anfänger-Themen 12
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
O Server Client Problem Java Basics - Anfänger-Themen 2
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
X Applet - Client/Server Java Basics - Anfänger-Themen 2
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
S Klassen Server und Client Java Basics - Anfänger-Themen 3
M Client - DB-Server Struktur Java Basics - Anfänger-Themen 7
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
G Server-Client Kommunikation Java Basics - Anfänger-Themen 3
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
B Server-Client mit Thread ausstatten Java Basics - Anfänger-Themen 3
D Client-Server Problem Java Basics - Anfänger-Themen 2
J Netzwerkrprogammierung Client - Server Java Basics - Anfänger-Themen 3
J Netzwerkprogrammierung Client/Server Java Basics - Anfänger-Themen 16
G ArrayListe vom Server nach Client schicken Java Basics - Anfänger-Themen 17
G JMS -> Wie Anmeldung vom Client an Server? Java Basics - Anfänger-Themen 4
I Server / Client Programm wie einen String übergeben? Java Basics - Anfänger-Themen 6
B Client - Server Verbindung über sockets mysql DB ansprechen? Java Basics - Anfänger-Themen 6
G Java Server Client Programmierung Java Basics - Anfänger-Themen 3
B Bild/Datei von einem Server an einen Client senden Java Basics - Anfänger-Themen 6
D Server/Client Java Basics - Anfänger-Themen 8
H Server Client, es kommt nichts an. Java Basics - Anfänger-Themen 5
G [Hilfe] Fileupload: Client-Server Java Basics - Anfänger-Themen 9
S Server/Client Verbindung Java Basics - Anfänger-Themen 2
G Dateidownload Client-Server (jsp) Java Basics - Anfänger-Themen 4
G Zugriff vom 'Server auf Client' Java Basics - Anfänger-Themen 4
S Client-Server Java Basics - Anfänger-Themen 18
X client soll bat auf server ansprechen Java Basics - Anfänger-Themen 7
C client/server programm fehler ! Java Basics - Anfänger-Themen 20
C string über server/client verbindung senden ? Java Basics - Anfänger-Themen 4
K [servcer/Client] Suche Server /Client Tutorial. Java Basics - Anfänger-Themen 2
FireHorses Benutzernamen aus PrivateChannel(Interaction) auf Server bringen Java Basics - Anfänger-Themen 0
HolyFUT Best Practice Architektur WebSocket Server Java Basics - Anfänger-Themen 1
S Server Java Basics - Anfänger-Themen 4
S Server Java Basics - Anfänger-Themen 3
M CS GO Server mit Java steuern Java Basics - Anfänger-Themen 3
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
W Netwerkprogrammierung und Http Server Java Basics - Anfänger-Themen 10
G sql server connection mit windows authentication Java Basics - Anfänger-Themen 2
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
U Erste Schritte Server will nicht übergebenes Objekt speichern Java Basics - Anfänger-Themen 5
B IP Adresse von Wildfly Server Java Basics - Anfänger-Themen 1
cezary Server läßt sich nicht starten Java Basics - Anfänger-Themen 2
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
F String zu einem Server senden Java Basics - Anfänger-Themen 4
N Server Zeit zur lokalen Zeit setzen. Java Basics - Anfänger-Themen 0
I ical - Datei auf Server ablegen und Kalender abbonieren Java Basics - Anfänger-Themen 0
T Eclipse - GlassFish Server!? Java Basics - Anfänger-Themen 1
I Java Server Faces mit Glassfish Webseite veröffentlichen Java Basics - Anfänger-Themen 4
M Input/Output tcp-Server mit statischer Parallelität Java Basics - Anfänger-Themen 7
G Multiple Clients and one Server Java Basics - Anfänger-Themen 2
F jabva 7.21 läuft nicht auf windows server 2012? Java Basics - Anfänger-Themen 9
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
I JDK SERVER -jar stoppen Java Basics - Anfänger-Themen 5
Screen Wie Propertydatei im Server beschreiben? Java Basics - Anfänger-Themen 7
K threaded server Java Basics - Anfänger-Themen 18
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
L Chat server Java Basics - Anfänger-Themen 4
B Java Server Side Java Basics - Anfänger-Themen 14
G JObjekte dynamisch vom Server erzeugen lassen Java Basics - Anfänger-Themen 4
A Server logs auslesen Java Basics - Anfänger-Themen 6
Z Threads, Server, GUI Java Basics - Anfänger-Themen 4
M Java class auf Server starten Java Basics - Anfänger-Themen 5
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
I Interface Comparable für Server-Item-Interface Java Basics - Anfänger-Themen 12
N Methoden Test ob Server vorhanden ist Java Basics - Anfänger-Themen 4
S .Bat Server von .java Starten Java Basics - Anfänger-Themen 5
L Server mit mehreren Clients Java Basics - Anfänger-Themen 25
M daytime-Server Port 13 Java Basics - Anfänger-Themen 2
O (von Applet) daten an Server übergeben Java Basics - Anfänger-Themen 4
W mehrere clients auf einem server Java Basics - Anfänger-Themen 2
R Server-Daten sichern/verschlüsseln Java Basics - Anfänger-Themen 10
N Applets: Objekte vom Server laden Java Basics - Anfänger-Themen 4
V pfad.exists() gilt nicht für "//server/a/xyz.jpg"? Java Basics - Anfänger-Themen 12
F SQL Server aus Umlaute werden Fragezeichen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben