# server für mein spiel.



## Guest (22. Jul 2007)

hi alle.
ich möchte für mein spiel ein server in java programmieren, ich weiss nicht genau wie ich schreiben soll(vorgehensweise).

Kann jemand mir helfen?
danke alle.


----------



## nbkr (22. Jul 2007)

Was für ein Spiel ist dass denn?


----------



## Guest (22. Jul 2007)

eigentlich erste teil für ein denkspiel. Zwei leute können gegeneinander spielen. Nacher werden wird es für 3d spiel naturlich


----------



## MarcoBehnke (26. Jul 2007)

ähm... so ganz ohne Infos wird es echt schwer.
Für ein Denkspiel für 2 Personen würde ich Dir eine TCP Client/Server Verbindung empfehlen. TCP gibt Dir Sicherheit über den Verbindungsstatus und den Nachrichtenverlauf. Performance spielt hier wohl keine Rolle.

Sowohl Server als auch Client brauchen einen Thread, um Nachrichten empfangen und senden zu können.

Wenn Dein Denkspiel rundenbasiert ist und nur ein Spieler an der Reihe ist, also alles seriell abläuft, dann kannst Du die Kommunikation auch genau so REQUEST/RESPONSE aufbauen.

Wenn alle gleichzeit agieren können, dann brauchst Du Threads dafür, damit der Server mehrere Anfragen gleichzeit beantworten kann.

Ich habe mal aus meiner Praktikazeit Dir ein Client Server Beispiel ausgegraben. Damit kannst Du testen und probieren und wenn Du eine konkrete Frage zu einem Problem hast, können wir weitermachen!


```
/*
 * Created on Oct 13, 2003
 *
 * To change the template for this generated file go to
 * Window&Preferences&Java&Code Generation&Code and Comments
 */
package rnp.examples;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {

	private int _port;

	public TCPServer() {
		this(6969);
	}
	
	public TCPServer(int port) {
		_port = port;
		initialize();
	}
	
	private void initialize(){
		
	}

	public static void main(String argv[]) throws Exception {
		String clientSentence;
		String capitalizedSentence;

		ServerSocket welcomeSocket = new ServerSocket(6969);

		while (true) {

			Socket connectionSocket = welcomeSocket.accept();

			BufferedReader inFromClient =
				new BufferedReader(
					new InputStreamReader(connectionSocket.getInputStream()));

			DataOutputStream outToClient =
				new DataOutputStream(connectionSocket.getOutputStream());

			clientSentence = inFromClient.readLine();

			capitalizedSentence = clientSentence.toUpperCase() + '\n';

			outToClient.writeBytes(capitalizedSentence);
		}
	}
}
```


```
/*
 * Created on Oct 13, 2003
 *
 * To change the template for this generated file go to
 * Window&Preferences&Java&Code Generation&Code and Comments
 */
package rnp.examples;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class TCPClient {
	
	private Socket _clientSocket;
	
	private String _hostname;
	private int    _port=6969;

	private String _nextMessage     ="";
	private String _receivedMessage ="";
	
	private BufferedReader   _inFromServer;
	private DataOutputStream _outToServer;

	public TCPClient(String hostname) throws IOException, UnknownHostException{
		this(hostname,6969);
	}
	
	public TCPClient(String hostname, int port) throws IOException, UnknownHostException {
		super();
		setHostname(hostname);
		setPort(port);
		initialize();
	}

	protected void setHostname(String hostname) {
		_hostname = hostname;
	}
	
	protected void setPort(int port) {
		_port = port;
	}
	
	public static String Hostname = "141.22.10.210";
	
	public void setNextMessage(String msg) {
		_nextMessage = msg;
	}
	
	public void readNextMsgFromConsole() throws IOException {
		BufferedReader inFromUser = 
				  new BufferedReader(new InputStreamReader(System.in));
		setNextMessage(inFromUser.readLine());
	}

	public void sendNextMsgToServer() throws IOException {
		_outToServer.writeBytes(_nextMessage + '\n'); 
	}

	public String readLine() throws IOException {
		return _inFromServer.readLine(); 
	}
	
	public int read()  throws IOException{
		return _inFromServer.read();
	}
	
	public void read(char[] buffer) throws IOException {
		_inFromServer.read(buffer);
	}
	
	private void initialize() throws UnknownHostException, IOException {
		_clientSocket = new Socket(_hostname,_port);
		_outToServer = new DataOutputStream(_clientSocket.getOutputStream());
		_inFromServer = new BufferedReader(new InputStreamReader(_clientSocket.getInputStream())); 
	}
	
	public void disconnect() throws IOException {
		_clientSocket.close();
	}
	
    public static void main(String argv[]) throws Exception 
    { 
    	TCPClient client = new TCPClient("192.168.0.100");

    	client.setNextMessage("hallo");
    	client.sendNextMsgToServer();
    	System.out.println(client.readLine());
    	
    	client.disconnect();
	} 
}
```


----------



## Xams (30. Jul 2007)

Evtl. hilft dir Egon Olsens Server und Client weiter.


----------



## assoziatives pseudonym (7. Aug 2007)

...


----------

