private static void RecServerFromLB(NetworkStream networkStream) { byte[] buffer = new byte[30]; string dataFromClient; IList <string> msgSplit; string serverIp; int port; try { while (true) { networkStream.Read(buffer, 0, 30); dataFromClient = Encoding.ASCII.GetString(buffer); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); msgSplit = dataFromClient.Split(':'); serverIp = msgSplit[0]; port = Int32.Parse(msgSplit[1]) + 2; log.Write("Starting Listening from Server " + serverIp + ":" + port); TcpClient serverSocket = new TcpClient(); serverSocket.Connect(serverIp, port); HandleServer server = new HandleServer { ServerID = Interlocked.Increment(ref sereverounter), ServerSocket = serverSocket, Sender = true, Port = port, ServerIP = serverIp }; server.StartServer(); serverList.Add(server.ServerID, server); } } catch (Exception ex) { log.Write("Exception in RecServerFromLB " + ex); Console.WriteLine("Exception in RecServerFromLB " + ex); } }
private static void FetchServers(TcpListener serverSocket) { bool newServer; try { while (true) { newServer = true; TcpClient serverTCPSocket = default(TcpClient); Console.WriteLine("Started Listening ....."); serverTCPSocket = serverSocket.AcceptTcpClient(); IList <string> msgSplit; msgSplit = serverTCPSocket.Client.RemoteEndPoint.ToString().Split(':'); foreach (HandleServer handleserver in serverList.Values) { Console.WriteLine(msgSplit[0] + " = " + handleserver.ServerIP + " " + msgSplit[0].Equals(handleserver.ServerIP)); if (msgSplit[0].Equals(handleserver.ServerIP)) { handleserver.Connected = true; handleserver.ServerSocket = serverTCPSocket; handleserver.StartServer(); newServer = false; log.Write("server " + handleserver.ServerIP + " has reconected "); Console.WriteLine("server " + handleserver.ServerIP + " has reconected "); //lock (disconnectedServerList) // disconnectedServerList.Remove(handleserver.ServerID); //Console.WriteLine("Clearing List " + disconnectedServerList.Count + " deleted " + handleserver.ServerID + handleserver.Connected + handleserver.ServerSocket.Connected); } } if (newServer) { HandleServer server = new HandleServer { ServerID = Interlocked.Increment(ref sereverounter), ServerSocket = serverTCPSocket, Sender = false, ServerIP = msgSplit[0] }; server.StartServer(); serverList.Add(server.ServerID, server); } } } catch (Exception ex) { log.Write("Exception in FetchServers " + ex); Console.WriteLine("Exception in FetchServers " + ex); } }