Beispiel #1
0
        private void InitializeServer()
        {
            _connection_type = INSTANCE_TYPE.SERVER_TYPE;

            NetPeerConfiguration config = new NetPeerConfiguration("ServerClientClient");

            config.AcceptIncomingConnections = true;

            config.MaximumConnections = 2;

            config.Port = _server_port;

            config.EnableMessageType(NetIncomingMessageType.DiscoveryResponse);

            _connection = new NetServer(config);
            Debug.Assert(_connection != null);

            _connection.Start();

            NetIncomingMessage pInMsg;

            bool ready = false;

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine("\nServer Instance\nWaiting for clients...\n");

            int count = 0;

            while (!ready)
            {
                if ((pInMsg = _connection.ReadMessage()) != null &&
                    pInMsg.MessageType == NetIncomingMessageType.StatusChanged)
                {
                    if ((NetConnectionStatus)pInMsg.ReadByte() == NetConnectionStatus.Connected)
                    {
                        NetOutgoingMessage m = _connection.CreateMessage();
                        m.Write(_connection.ConnectionsCount);
                        _connection.SendMessage(m, _connection.Connections[_connection.ConnectionsCount - 1], NetDeliveryMethod.ReliableOrdered);

                        if (count != _connection.ConnectionsCount)
                        {
                            count = _connection.ConnectionsCount;
                            Console.WriteLine("\nClients connected: " + count + "\n");
                        }

                        if (_connection.ConnectionsCount >= 2)
                        {
                            ready = true;
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void InitializeClient()
        {
            bool ready = false;

            NetIncomingMessage pInMsg;

            while (!ready)
            {
                if ((pInMsg = _connection.ReadMessage()) != null &&
                    pInMsg.MessageType == NetIncomingMessageType.Data)
                {
                    _connection_type = (INSTANCE_TYPE)pInMsg.ReadInt32();
                    Debug.Assert(_connection_type == INSTANCE_TYPE.CLIENT_1_TYPE || _connection_type == INSTANCE_TYPE.CLIENT_2_TYPE);
                    ready = true;
                }
            }
        }