public void StartServer()
{
TcpListener tcpListener = new TcpListener(port);
tcpListener.Start();
//this.label1.Text = "Server Started";
SetText("Started Server");
//Timer t = new Timer(ComputeBoundOp, 5, 0, 2000);
//Creates an infinate loop that just listens for client connections.
while (true)
{
//When a client connects create a socket for it.
Socket socketForClient = tcpListener.AcceptSocket();
try
{
if (socketForClient.Connected)
{
string ipadd1 = socketForClient.RemoteEndPoint.ToString();
string[] ipaddy = ipadd1.Split(':');
Console.WriteLine("Client connected from " + ipaddy[0] + ":" + ipaddy[1] + "");
NetworkStream networkStream = new NetworkStream(socketForClient);
StreamWriter streamWriter = new StreamWriter(networkStream);
StreamReader streamReader = new StreamReader(networkStream);
string line = streamReader.ReadLine();
string[] logininfo = line.Split(',');
if (logininfo[0] == "start" && logininfo[2] == passkey)
{
if (logininfo[1] == "utilities")
{
//Console.WriteLine("Starting Up " + logininfo[1] + " Server...");
SetText("Starting Up " + logininfo[1] + " Server...");
Thread StartANH = new Thread(new ThreadStart(StartAnh));
if (flgStartAnh == true)
{
StartANH.Abort();
flgStartAnh = false;
}
StartANH.Start();
streamWriter.WriteLine("success");
//Console.WriteLine("Updated IP Info for " + logininfo[0] + "...");
streamWriter.Flush();
socketForClient.Close();
//
}
}
else if (logininfo[0] == "stop" && logininfo[2] == passkey)
{
Thread AnhStop = new Thread(new ThreadStart(StopANH));
if (flgStopAnh == true)
{
AnhStop.Abort();
flgStopAnh = false;
}
AnhStop.Start();
streamWriter.WriteLine("success");
streamWriter.Flush();
socketForClient.Close();
}
else if (logininfo[0] == "status" && logininfo[2] == passkey)
{
if (logininfo[1] == "zones")
{
if (tutorialzone != null && tatooinezone != null && naboozone != null && corelliazone != null && dantooinezone != null && dathomirzone != null && endorzone != null && lokzone != null && rorizone != null && taluszone != null && yavinzone != null)
{
streamWriter.WriteLine("success");
streamWriter.Flush();
socketForClient.Close();
}
else
{
streamWriter.WriteLine("fail");
streamWriter.Flush();
socketForClient.Close();
}
}
if (logininfo[1] == "utilities")
{
if (connectionserver != null && chatserver != null && pingserver != null && loginserver != null)
{
streamWriter.WriteLine("success");
streamWriter.Flush();
socketForClient.Close();
}
else
{
streamWriter.WriteLine("fail");
streamWriter.Flush();
socketForClient.Close();
}
}
else if (logininfo[0] == "status" && logininfo[2] != passkey)
{
streamWriter.WriteLine("fail");
streamWriter.Flush();
socketForClient.Close();
}
else if (logininfo[0] == "stop" && logininfo[2] != passkey)
{
streamWriter.WriteLine("fail");
streamWriter.Flush();
socketForClient.Close();
}
else if (logininfo[0] == "start" && logininfo[2] != passkey)
{
streamWriter.WriteLine("fail");
streamWriter.Flush();
socketForClient.Close();
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
//check if client socket is connected, if so close it.
if (socketForClient.Connected)
socketForClient.Close();
}
flgThreadRunning = true;
}
Console.WriteLine("Exiting...");
}