rendered paste bodyimport 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());
}
}
}
}