private void Tic_Tac_Toe_Server_Load(object sender, EventArgs e) { //start the client Boolean error = false; Tic_Tac_Toe_Client client = new Tic_Tac_Toe_Client(this, error, menu); client.Show(); }
//accept connections from two clients applications public void SetUp() { //server listens for requests on port 5000 try { listener = new TcpListener(System.Net.IPAddress.Any, 5000); listener.Start(); //accept first client (player) and start its thread players[0] = new NetPlayer(listener.AcceptSocket(), this, 'X'); playerThreads[0] = new Thread(new ThreadStart(players[0].Run)); playerThreads[0].Start(); // //accept second client (Player) and start its thread players[1] = new NetPlayer(listener.AcceptSocket(), this, 'O'); playerThreads[1] = new Thread(new ThreadStart(players[1].Run)); playerThreads[1].Start(); //inform first player of other player's connection to the server lock ((players[0])) { players[0].threadSuspended = false; Monitor.Pulse(players[0]); } } catch (SocketException ex) { //MessageBox.Show("server setup error " + ex.Message); //start the client Boolean error = true; Tic_Tac_Toe_Client client = new Tic_Tac_Toe_Client(this, error, menu); client.Show(); closeTheForm(); // exit the server if the server is already running //this.Close(); } }