public bool TCP_ConnectToServer(IPAddress serverIP) { if (status == TCP_Status.TCP_Disconnected) { TcpClient client = new TcpClient(AddressFamily.InterNetwork); //Try to connect to server var result = client.BeginConnect(serverIP, TCPPort, null, null); var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(2)); //Connection failed if (!success) { return(false); } //Connection build client.EndConnect(result); NET_TcpConnection connection = new NET_TcpConnection(client); connection.Connected(); connectionToServer = connection; status = TCP_Status.TCP_Connected; return(true); } else { return(false); } }
public void TCP_Server_Shutdown() { if (serverStatus == TCP_Status.TCP_Waiting) { serverStatus = TCP_Status.TCP_Shutdown; } }
//---------------------------------------------------------------------------------------------// //Public functions: //---------------------------------------------------------------------------------------------// public void TCP_Server_Start() { if (serverStatus == TCP_Status.TCP_Shutdown) { this.serverStatus = TCP_Status.TCP_Running; TCPMainThread = new Thread(TCP_MainThread); TCPMainThread.Name = "[NET_TCP] server thread"; TCPMainThread.Start(); } }
public bool TCP_Disconnected() { if (status == TCP_Status.TCP_Connected) { connectionToServer.Disconnected(); status = TCP_Status.TCP_Disconnected; return(true); } else { return(false); } }
public bool TCP_DisconnectFromServer(int playerID) { if (status == TCP_Status.TCP_Connected) { connectionToServer.Disconnect(playerID); status = TCP_Status.TCP_Disconnected; return(true); } else { return(false); } }
public void TCP_Server_Stop() { if (serverStatus == TCP_Status.TCP_Running) { //Send disconnect to all clients for (int x = 0; x < 3; x++) { if (connections[x] != null) { if (connections[x].GetState() == "TCPC_Connected") { connections[x].Disconnect(x + 2); } } } serverStatus = TCP_Status.TCP_Waiting; } }