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
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:
Und der Client:
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
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();
}
}
}