Пример #1
0
        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);
            }
        }
Пример #2
0
 public void TCP_Server_Shutdown()
 {
     if (serverStatus == TCP_Status.TCP_Waiting)
     {
         serverStatus = TCP_Status.TCP_Shutdown;
     }
 }
Пример #3
0
 //---------------------------------------------------------------------------------------------//
 //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();
     }
 }
Пример #4
0
 public bool TCP_Disconnected()
 {
     if (status == TCP_Status.TCP_Connected)
     {
         connectionToServer.Disconnected();
         status = TCP_Status.TCP_Disconnected;
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #5
0
 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);
     }
 }
Пример #6
0
 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;
     }
 }