Client Server Connection

SnauceSnauce

Mitglied
Hallo ich habe ein Frage bezüglich meines Servers.
Es ist nur ein einfacher Echo-Server.

Java:
package Network;

import javax.swing.JOptionPane;

public class Main {
	public static void main(String[] args) {

		if (JOptionPane.showConfirmDialog(null, "Run Server") == 0) {
			GameServer socketServer = new GameServer();
			socketServer.start();
		}
		GameClient socketClient = new GameClient("localhost");
		socketClient.start();
		socketClient.sendData("ping".getBytes());
	}
}

Dann der Server
Java:
package Network;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class GameServer extends Thread {
	private DatagramSocket socket;

	public GameServer() {
		try {
			this.socket = new DatagramSocket(1331);
		} catch (SocketException e) {
			e.printStackTrace();
		}
	}

	public void run() {
		while (true) {
			byte[] data = new byte[1024];
			DatagramPacket packet = new DatagramPacket(data, data.length);
			try {
				socket.receive(packet);
			} catch (IOException e) {
				e.printStackTrace();
			}
			String message = new String(packet.getData());
			System.out.println("Client[" + packet.getAddress().getHostAddress() + ":" + packet.getPort() + "] > " + message);
			if (message.trim().equalsIgnoreCase("ping")) {
				sendData("pong".getBytes(), packet.getAddress(), packet.getPort());
			}
		}
	}

	public void sendData(byte[] data, InetAddress ipAdress, int port) {
		DatagramPacket packet = new DatagramPacket(data, data.length, ipAdress, port);
		try {
			socket.send(packet);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

Und der Client

package Network;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class GameClient extends Thread {

private InetAddress ipAdress;
private DatagramSocket socket;

public GameClient(String ipAdress) {
try {
this.ipAdress = InetAddress.getByName(ipAdress);
this.socket = new DatagramSocket();
} catch (UnknownHostException | SocketException e) {
e.printStackTrace();
}
}

public void run() {
while (true) {
byte[] data = new byte[1024];
DatagramPacket packet = new DatagramPacket(data, data.length);
try {
socket.receive(packet);
} catch (IOException e) {
e.printStackTrace();
}
String message = new String(packet.getData());
System.out.println("Server > " + message);
}
}

public void sendData(byte[] data) {
DatagramPacket packet = new DatagramPacket(data, data.length, ipAdress, 1331);
try {
socket.send(packet);
} catch (IOException e) {
e.printStackTrace();
}
}
}

Ich hab die jar einem Freund geschickt und "localhost" mit meiner IP ausgetauscht, aber als er es gestartet hat kamm nicht das sein Client auf den Server zugegriffen hat.
Kann jemand helfen?
Danke im Vorraus
 
Hast du die entsprechenden Ports denn in der Firewall freigegeben? (Frag ich jetzt einfach mal ohne das getestet zu haben 😀 ).
 
Ich habs im Router und Virenprogramm freigeschaltet, aber wenn ich meine IP adresse statt "localhost" eingebe kann ich von meinem eigenen PC auch nicht mehr auf den Server connecten.
 

Zurück
Oben