예제 #1
0
 private void RoomUpdateProc(RoomInfo roomInfo)
 {
     string _data = "";
     _data += roomInfo.roomNumber.ToString() + " ";
     _data += roomInfo.totalNumber.ToString() + " ";
     _data += roomInfo.maximumNumber.ToString() + " ";
     if (roomInfo.isPublic)
         _data += "t ";
     else
         _data += "f ";
     foreach (Player _player in roomInfo.users.Values)
     {
         if (true /*_player.id != null*/)
         {
             _data += _player.id + " ";
         }
     }
     Console.WriteLine(_data);
     foreach (Socket _client in roomInfo.users.Keys)
     {
         if (_client != null)
         {
             SendDataToClient((byte)101, Encoding.Unicode.GetBytes(_data), _client);
         }
     }
 }
예제 #2
0
        private void RoomCreateProc(byte[] data, Socket client)
        {
            string _tempString = Encoding.Unicode.GetString(data);
            int maximumNumber = 4;
            bool isPublic;
            if (_tempString.Equals("t"))
                isPublic = true;
            else
                isPublic = false;

            RoomInfo roomInfo = new RoomInfo(client, clientSet[client].id, maximumNumber, isPublic);
            roomSet.Add(roomInfo);

            string _data = "s ";
            if (roomInfo.isPublic)
                _data += "t";
            else
                _data += "f";
            //SendDataToClient((byte)99, Encoding.Unicode.GetBytes(_data), client);
            clientSet[client] = new User(clientSet[client].id, ClientState.ONROOM);
            RoomUpdateProc(roomInfo);
        }