All pastes #472806 Raw Edit

Untitled

public text v1 · immutable
·published 2007-05-05 20:39 UTC
rendered paste body
import java.net.*;
import java.io.*;

public class BreakThroughServer implements Serializable
{
	private ServerSocket sSocket;
	private Socket socket;
	
	private int[][] defaultBoard = {{1,1,0,0,0,0,2,2},
									{1,1,0,0,0,0,2,2},
									{1,1,0,0,0,0,2,2},
									{1,1,0,0,0,0,2,2},
									{1,1,0,0,0,0,2,2},
									{1,1,0,0,0,0,2,2},
									{1,1,0,0,0,0,2,2},
									{1,1,0,0,0,0,2,2}};
	private int[][] currentBoard;
	
	int playerNumber  = 1;
	
	public static void main(String[] args)
	{
		new BreakThroughServer();
	}
	
	public BreakThroughServer()
	{
		GameThread thread;
		try
		{
			sSocket = new ServerSocket(16789);
			while(true)
			{
				socket = sSocket.accept();
				System.out.println("Connection accepted from " + socket.getInetAddress());
				if(playerNumber == 1)
				{
					thread = new GameThread(playerNumber);
					playerNumber++;
					thread.start();
				}
				else if(playerNumber == 2)
				{
					thread = new GameThread(playerNumber);
					playerNumber--;
					thread.start();
				}
			}
		}
		catch(IOException ioe)
		{
			System.out.println(ioe.getMessage());
		}
	}
	
	protected class GameThread extends Thread
	{
		private int playerNumber;
		
		private InputStream in;
		private OutputStream out;
		
		private BufferedReader inStream;
		private PrintWriter outStream;
		private ObjectOutputStream objectStream;
		
		private String fromUser;
		private String fromServer;
		
		public GameThread(int playerNumber)
		{
			this.playerNumber = playerNumber;
		}
		
		public void run() 
		{
			try
			{
				//set current board to the default board
				currentBoard = (int[][])defaultBoard.clone();
				
				//data streams from socket
				out = socket.getOutputStream();
				in = socket.getInputStream();
				
				//wraps data streams for ease of use
				inStream = new BufferedReader(new InputStreamReader(in));
				outStream = new PrintWriter(out, true);
				
				//wrapper for object stream
				objectStream = new ObjectOutputStream(out);
				
				//initial communication to client
				System.out.println("p-" + playerNumber);
				outStream.println("p-" + playerNumber);
				
				outStream.flush();
				out.flush();
				
				System.out.println(currentBoard[1][1]);
				objectStream.writeObject(currentBoard);
				System.out.println(currentBoard[1][1]);
				
				objectStream.flush();
				out.flush();
			}
			catch(IOException ioe)
			{
				System.out.println(ioe.getMessage());
			}
			
		}
	}
}