RM新时代官网网址|首入球时间

<nav id="tdq72"></nav>
  1. <menuitem id="tdq72"><strike id="tdq72"></strike></menuitem>

    <cite id="tdq72"><button id="tdq72"></button></cite>

    <cite id="tdq72"></cite>
    <sup id="tdq72"><th id="tdq72"></th></sup>
  2. 使用Qt獲取NTP服務(wù)器時(shí)間的方法及示例

    admin1年前 (2023-07-12)時(shí)頻百科235

      使用Qt獲取NTP服務(wù)器時(shí)間是一個(gè)實(shí)用的功能,這樣可以使得程序在使用時(shí)更加準確,下面將會(huì )對這個(gè)功能進(jìn)行詳細的闡述。

      

    1、QNetworkDatagram的使用

    Qt提供了一個(gè)類(lèi)QNetworkDatagram,用于在網(wǎng)絡(luò )上發(fā)送和接收數據報。我們可以通過(guò)它發(fā)送一個(gè)NTP協(xié)議的請求。這個(gè)請求是一個(gè)48字節的數據報,它的前48字節是0,第一個(gè)字節是17代表NTPv4,后面的字節里是一些控制信息。發(fā)送該數據報后,等待服務(wù)器返回48字節的應答即可得到服務(wù)器的時(shí)間信息。

    使用Qt獲取NTP服務(wù)器時(shí)間的方法及示例

      使用QNetworkDatagram類(lèi)來(lái)實(shí)現發(fā)送和接收數據包的代碼如下:

      ```

      QByteArray requestData(48, 0);

      requestData[0] = 0x1b; // 設置NTP協(xié)議版本

      QNetworkDatagram datagram(requestData, QHostAddress("pool.ntp.org"), 123);

      QUdpSocket udpSocket;

      udpSocket.writeDatagram(datagram);

      if (udpSocket.waitForReadyRead(3000)) {

       QByteArray data;

       data.resize(udpSocket.pendingDatagramSize());

       udpSocket.readDatagram(data.data(), data.size());

       // 對獲取的數據字節進(jìn)行時(shí)間計算處理

      } else {

       qDebug() << "Request timeout";

      ```

      在上述代碼中,我們通過(guò)QByteArray對象建立了一個(gè)長(cháng)度為48、且所有位都是0的數組,然后通過(guò)這個(gè)數組以及QHostAddress類(lèi)創(chuàng )建了一個(gè)QNetworkDatagram對象,并將其發(fā)送到指定的主機地址和端口。如果在指定時(shí)間內沒(méi)有收到來(lái)自服務(wù)器的應答,則認為該次請求超時(shí)。

      

    2、將時(shí)間戳轉化為人類(lèi)可讀的時(shí)間

    獲取NTP服務(wù)器時(shí)間后,我們需要將時(shí)間戳轉化為人類(lèi)可讀的時(shí)間??梢酝ㄟ^(guò)函數time_t ntohl(time_t netlong)將網(wǎng)絡(luò )字節序的32位無(wú)符號整數轉換為主機字節序的32位無(wú)符號整數。

      下面是將網(wǎng)絡(luò )字節序的64位時(shí)間戳轉換為人可讀的時(shí)間的代碼:

      ```

      QByteArray data; // 從服務(wù)器獲取的數據

      unsigned long long NTP_TIMESTAMP_DELTA = 2208988800ull; // 參考時(shí)間:1900年1月1日

      time_t high = ntohl(*((uint32_t*)&data[40])) - NTP_TIMESTAMP_DELTA;

      time_t low = ntohl(*((uint32_t*)&data[44]));

      time_t ntp_time = (high << 32) low;

      QDateTime utc(QDate(1900, 1, 1), QTime(0, 0, 0), Qt::UTC);

      QDateTime current(utc.addSecs(ntp_time));

      qDebug() << "Current time is" << current;

      ```

      在上述代碼中,我們首先將從服務(wù)器獲取的64位時(shí)間戳分別存儲在high和low變量中,然后將它們拼接成一個(gè)新的64位時(shí)間戳ntp_time。接著(zhù),我們根據參考時(shí)間以及加上ntp_time計算出QDateTime對象current表示當前時(shí)間。

      

    3、使用定時(shí)器獲取服務(wù)器時(shí)間

    我們可以使用Qt中的QTimer定時(shí)器類(lèi),并在定時(shí)器的槽函數中實(shí)現NTP協(xié)議的請求和計算NTP服務(wù)器時(shí)間的過(guò)程。

      下面的代碼演示了如何使用QTimer類(lèi)來(lái)獲取NTP服務(wù)器時(shí)間:

      ```

      void MainWindow::startTimer()

       QTimer *timer = new QTimer(this);

       connect(timer, &QTimer::timeout, this, &MainWindow::onTimer);

       timer->start(1000); // 每隔1秒執行一次onTimer()

      void MainWindow::onTimer()

       QByteArray requestData(48, 0);

       requestData[0] = 0x1b;

       QNetworkDatagram datagram(requestData, QHostAddress("pool.ntp.org"), 123);

       QUdpSocket udpSocket;

       udpSocket.writeDatagram(datagram);

       if (udpSocket.waitForReadyRead(3000)) {

       QByteArray data;

       data.resize(udpSocket.pendingDatagramSize());

       udpSocket.readDatagram(data.data(), data.size());

       // 進(jìn)行時(shí)間戳處理

       unsigned long long NTP_TIMESTAMP_DELTA = 2208988800ull;

       time_t high = ntohl(*((uint32_t*)&data[40])) - NTP_TIMESTAMP_DELTA;

       time_t low = ntohl(*((uint32_t*)&data[44]));

       time_t ntp_time = (high << 32) low;

       QDateTime utc(QDate(1900, 1, 1), QTime(0, 0, 0), Qt::UTC);

       QDateTime current(utc.addSecs(ntp_time));

       qDebug() << "Current time is" << current;

       } else {

       qDebug() << "Request timeout";

       }

      ```

      在上述代碼中,我們首先在startTimer()函數中創(chuàng )建了一個(gè)QTimer對象,并將它與onTimer()槽函數連接并定時(shí)啟動(dòng)。在onTimer函數中,我們使用了前面提到的QNetworkDatagram類(lèi)發(fā)送了一個(gè)NTP協(xié)議的請求,并通過(guò)時(shí)間戳計算得到了當前的時(shí)間,并打印到控制臺上。

      

    4、使用并發(fā)框架多線(xiàn)程并發(fā)地獲取服務(wù)器時(shí)間

    對于高并發(fā)和網(wǎng)絡(luò )阻塞等問(wèn)題,我們可以使用Qt提供的QThreadPool類(lèi)實(shí)現多線(xiàn)程并發(fā)獲取NTP服務(wù)器時(shí)間。

      下面的代碼展示了如何使用QThreadPool和QRunnable類(lèi)來(lái)實(shí)現多線(xiàn)程并發(fā)獲取NTP服務(wù)器時(shí)間:

      ```

      class TimeRunnable : public QRunnable

      public:

       TimeRunnable(const QString &server) : _server(server) {}

       void run() override {

       QByteArray requestData(48, 0);

       requestData[0] = 0x1b;

       QNetworkDatagram datagram(requestData, QHostAddress(_server), 123);

       QUdpSocket udpSocket;

       udpSocket.writeDatagram(datagram);

       if (udpSocket.waitForReadyRead(3000)) {

       QByteArray data;

       data.resize(udpSocket.pendingDatagramSize());

       udpSocket.readDatagram(data.data(), data.size());

       // 進(jìn)行時(shí)間戳處理

       unsigned long long NTP_TIMESTAMP_DELTA = 2208988800ull;

       time_t high = ntohl(*((uint32_t*)&data[40])) - NTP_TIMESTAMP_DELTA;

       time_t low = ntohl(*((uint32_t*)&data[44]));

       time_t ntp_time = (high << 32) low;

       QDateTime utc(QDate(1900, 1, 1), QTime(0, 0, 0), Qt::UTC);

       QDateTime current(utc.addSecs(ntp_time));

       emit currentTime(current);

       }

       }

      signals:

       void currentTime(const QDateTime &);

      };

      class MainWindow : public QMainWindow

       Q_OBJECT

      public:

       MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {

       _pool.setMaxThreadCount(10); // 設置線(xiàn)程池最大線(xiàn)程數

       }

       ~MainWindow() {}

      public slots:

       void onTime(const QDateTime ¤t) {

       qDebug() << "Current time is" << current;

       }

       void onStart() {

       for (const auto &server : _servers) {

       TimeRunnable *runnable = new TimeRunnable(server);

       connect(runnable, &TimeRunnable::currentTime, this, &MainWindow::onTime);

       _pool.start(runnable);

       }

       }

      private:

       QVector _servers{"pool.ntp.org", "cn.ntp.org.cn", "time.windows.com"};

       QThreadPool _pool;

      };

      ```

      在上述代碼中,我們創(chuàng )建了一個(gè)名為T(mén)imeRunnable的類(lèi),其中包含發(fā)送和接收NTP請求的代碼,并通過(guò)signals和slots機制與MainWindow類(lèi)連接。在MainWindow類(lèi)中,我們首先創(chuàng )建了一個(gè)QThreadPool對象,并在onStart()槽函數中,用服務(wù)器名字自動(dòng)運行TimeRunnable的實(shí)例,并將currentTime信號與onTime槽函數連接,以便在收到服務(wù)器時(shí)間時(shí)輸出到控制臺上。

      經(jīng)過(guò)上述改進(jìn),我們可以同時(shí)對多個(gè)NTP服務(wù)器進(jìn)行請求,增加了代碼的魯棒性并加快了時(shí)間獲取速度。

      總結:

      使用Qt獲取NTP服務(wù)器時(shí)間是一個(gè)強大的功能,可以在許多實(shí)際應用中發(fā)揮重要作用。在本文中我們提到了4個(gè)方法:使用QNetworkDatagram發(fā)送和接收請求、將時(shí)間戳轉化為人類(lèi)可讀的時(shí)間、使用定時(shí)器獲取時(shí)間和使用并發(fā)框架獲取NTP服務(wù)器時(shí)間等。這些方法體現了Qt在網(wǎng)絡(luò )操作方面的強大實(shí)力,同時(shí)也為我們在實(shí)際應用中更好地使用Qt提供了不少思路。

      感謝您的閱讀,希望這篇文章能夠對您有所幫助!

    相關(guān)文章

    Intent時(shí)間服務(wù)器:強大穩定,全球多地域部署,提供高效精準服務(wù)

    Intent時(shí)間服務(wù)器:強大穩定,全球多地域部署,提供高效精準服務(wù)

      Intent時(shí)間服務(wù)器:強大穩定,全球多地域部署,提供高效精準服務(wù)   在如今數字化時(shí)代,時(shí)間服務(wù)已成為人們生活中不可或缺的一部分,而Intent時(shí)間服務(wù)器無(wú)疑是這個(gè)領(lǐng)域中的領(lǐng)導者之一。該服務(wù)器旨在為全球用戶(hù)提供高品質(zhì)的時(shí)間服務(wù),通過(guò)強大穩定的技術(shù)支持和全球多地域部署,為用戶(hù)提供高效精準的時(shí)間服務(wù)。本文將從以下四個(gè)方面對Intent時(shí)間服務(wù)器的特點(diǎn)和優(yōu)勢做詳細闡述。   一、全球多地域部署   為了更好地為全球用戶(hù)提供時(shí)間服務(wù)...

    App中心監控服務(wù)器響應時(shí)間,提升服務(wù)穩定性。

    App中心監控服務(wù)器響應時(shí)間,提升服務(wù)穩定性。

      隨著(zhù)移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,App已成為人們日常生活中不可缺少的一部分。這也意味著(zhù),App的質(zhì)量和穩定性對于用戶(hù)體驗至關(guān)重要。而對于開(kāi)發(fā)者和運維人員來(lái)說(shuō),監控服務(wù)器響應時(shí)間是保證App服務(wù)穩定性的重要一環(huán)。本文將從4個(gè)方面詳細闡述如何利用App中心監控服務(wù)器響應時(shí)間,提升服務(wù)穩定性。    1、監控指標的選擇 在監控服務(wù)器響應時(shí)間時(shí),需要選擇合適的監控指標進(jìn)行監測??梢赃x擇關(guān)注的指標包括HTTP狀態(tài)碼、應用響應時(shí)間、CPU利...

    Linux操作:修改服務(wù)器時(shí)間

    Linux操作:修改服務(wù)器時(shí)間

      文章概括:   本文將從4個(gè)方面詳細闡述Linux操作下的服務(wù)器時(shí)間修改方法。首先是介紹概念,其次是系統時(shí)間的查看方法,然后是如何修改系統時(shí)間,最后是通過(guò)NTP自動(dòng)同步時(shí)間的方式。通過(guò)這篇文章的介紹,您可以掌握Linux下的服務(wù)器時(shí)間管理方法。    1、概念介紹 計算機中的時(shí)間可以分為系統時(shí)間和硬件時(shí)間兩種。系統時(shí)間是指操作系統內部的計時(shí)方式,它受到軟件的控制。而硬件時(shí)間是通過(guò)計算機主板上的時(shí)鐘芯片產(chǎn)生...

    CentOS云服務(wù)器時(shí)間錯誤的解決方法

    CentOS云服務(wù)器時(shí)間錯誤的解決方法

      本文主要探討的是如何解決CentOS云服務(wù)器時(shí)間錯誤的問(wèn)題。時(shí)鐘偏差可能會(huì )對許多系統運行時(shí)造成影響,因此了解正確設置時(shí)間的方法至關(guān)重要。    1、NTP同步時(shí)間 一種解決CentOS云服務(wù)器時(shí)間錯誤的方法是使用NTP同步時(shí)間。NTP(Network Time Protocol)是一個(gè)用于同步計算機系統時(shí)鐘的網(wǎng)絡(luò )協(xié)議。為了使服務(wù)器時(shí)間時(shí)刻準確,我們建議您使用NTP同步時(shí)間。   要...

    AWS服務(wù)器定時(shí)終止管理實(shí)踐

    AWS服務(wù)器定時(shí)終止管理實(shí)踐

      本文將以AWS服務(wù)器定時(shí)終止管理實(shí)踐為中心,為大家詳細闡述AWS服務(wù)器的定時(shí)終止管理方式,內容分為四個(gè)方面:自動(dòng)化配置、定時(shí)策略、監控和故障排除。通過(guò)本文的闡述,讀者們將能夠深刻理解AWS服務(wù)器定時(shí)終止管理的重要性和操作方式。    1、自動(dòng)化配置 AWS服務(wù)器定時(shí)終止管理是一種使服務(wù)器在不需要的時(shí)候自動(dòng)終止運行的技術(shù)。通過(guò)設置自動(dòng)終止的策略,可以避免因服務(wù)器運行時(shí)間過(guò)長(cháng)導致的資源浪費和成本增加。自動(dòng)化配置需要考慮的因素包...

    「時(shí)光倒流,服務(wù)器時(shí)間返回2098年,世界上將會(huì )發(fā)生什么?」

    「時(shí)光倒流,服務(wù)器時(shí)間返回2098年,世界上將會(huì )發(fā)生什么?」

      時(shí)光倒流,服務(wù)器時(shí)間返回2098年,這是一個(gè)非常耐人尋味的場(chǎng)景。由此引出的種種變化和可能性,讓人想象力無(wú)限,充滿(mǎn)了無(wú)數的可能性。在這篇文章中,我們將從不同的角度來(lái)探討這一場(chǎng)景的具體表現,包括社會(huì )、技術(shù)、文化和環(huán)境等多個(gè)方面。希望通過(guò)這個(gè)場(chǎng)景的想象,我們能夠更好地了解人類(lèi)文明發(fā)展的脈絡(luò ),以及面對未來(lái)的挑戰和機遇。    1、社會(huì )變遷 首先,2098年的社會(huì )將會(huì )有哪些不同之處呢?可以想象,隨著(zhù)時(shí)光倒流,社會(huì )上的種種歷史事件將被...

    CentOS服務(wù)器時(shí)間修改教程,詳盡易懂!

    CentOS服務(wù)器時(shí)間修改教程,詳盡易懂!

      本文將詳細闡述如何在CentOS服務(wù)器上修改時(shí)間,并分為四個(gè)方面進(jìn)行闡述。首先,我們將介紹CentOS服務(wù)器時(shí)間的概念和如何查看當前的系統時(shí)間。其次,我們將闡述如何手動(dòng)修改系統時(shí)間,并提供使用命令行修改時(shí)間的方法。接下來(lái),我們將討論如何自動(dòng)同步系統時(shí)間,以確保服務(wù)器時(shí)間的準確性。最后,我們將總結所學(xué)并提供一些小技巧幫助讀者更好地管理服務(wù)器時(shí)間。    1、概念和查看當前系統時(shí)間 在開(kāi)始討論如何修改CentOS服務(wù)器時(shí)間之前...

    Kindle服務(wù)器關(guān)停時(shí)間安排及注意事項

    Kindle服務(wù)器關(guān)停時(shí)間安排及注意事項

      為了保證Kindle的服務(wù)器更加安全穩定,Amazon公司將在未來(lái)一段時(shí)間內對其服務(wù)器進(jìn)行關(guān)停。這件事情對于Kindle用戶(hù)來(lái)說(shuō),主要就是要注意一些時(shí)間安排和注意事項,以免影響到自己的使用體驗。接下來(lái),我們將詳細闡述這些方面的內容。    1、關(guān)停時(shí)間安排 據了解,Amazon公司將在五月十二日至五月二十一日期間,對其服務(wù)器進(jìn)行關(guān)停維護。具體時(shí)間將根據各地時(shí)區的不同而有所調整,用戶(hù)可以通過(guò)登錄自己的Kindle賬號,在相關(guān)...

    「探索未知世界,共享冒險時(shí)光——我的世界冒險時(shí)間服務(wù)器」

    「探索未知世界,共享冒險時(shí)光——我的世界冒險時(shí)間服務(wù)器」

      探索未知世界,共享冒險時(shí)光——我的世界冒險時(shí)間服務(wù)器,作為一款多人在線(xiàn)沙盤(pán)游戲,集結了大量摯愛(ài)該游戲的玩家。在這個(gè)虛擬世界中,玩家可以自由地建造、探索未知的領(lǐng)域,帶著(zhù)朋友共享冒險時(shí)間。    1、游戲簡(jiǎn)介 我的世界(Minecraft)是一款由Mojang Studios所制作的構建類(lèi)沙盤(pán)游戲,玩家可以在一個(gè)由方塊組成的3D世界中自由地建造、探索與生存。   我的世界冒險時(shí)間服務(wù)器...

    Linux時(shí)間同步,讓服務(wù)器時(shí)間更精準

    Linux時(shí)間同步,讓服務(wù)器時(shí)間更精準

      隨著(zhù)現代IT基礎設施的發(fā)展,服務(wù)器已經(jīng)成為現代企業(yè)的核心基礎設施之一。服務(wù)器上的時(shí)間同步是確保服務(wù)器相對于其他設備和網(wǎng)絡(luò )的時(shí)間精度至關(guān)重要的一部分。為了確保服務(wù)器時(shí)間的準確,Linux系統開(kāi)發(fā)者提供了豐富的時(shí)間同步方案。這篇文章將深入探討Linux時(shí)間同步,幫助您讓服務(wù)器時(shí)鐘更準確。    1、系統時(shí)鐘的基礎 服務(wù)器系統時(shí)鐘是一個(gè)非常重要的時(shí)間源,它包括一個(gè)時(shí)鐘芯片,使用石英晶體驅動(dòng)。時(shí)鐘芯片內置了一個(gè)振蕩器,產(chǎn)生一個(gè)固定...

    Linux服務(wù)器時(shí)間查看方法詳解

    Linux服務(wù)器時(shí)間查看方法詳解

      在Linux服務(wù)器的管理過(guò)程中,時(shí)間的準確性是非常關(guān)鍵的。因此,了解如何正確查看服務(wù)器的時(shí)間是非常重要的。本文將從以下四個(gè)方面詳細介紹Linux服務(wù)器時(shí)間查看方法。    1、查看當前時(shí)間 要查看Linux服務(wù)器的當前時(shí)間,請使用date命令。該命令還可以用于設置服務(wù)器的時(shí)間。   要查看服務(wù)器的當前時(shí)間,請在終端輸入以下命令:   ...

    IBM服務(wù)器保修時(shí)間長(cháng)度及相關(guān)政策

    IBM服務(wù)器保修時(shí)間長(cháng)度及相關(guān)政策

      IBM是一家世界領(lǐng)先的技術(shù)和服務(wù)提供商,其服務(wù)器保修時(shí)間長(cháng)度及相關(guān)政策備受關(guān)注。本文將從四個(gè)方面對IBM服務(wù)器保修時(shí)間長(cháng)度及相關(guān)政策進(jìn)行詳細的闡述,以幫助大家更好地了解IBM服務(wù)器保修政策。    1、IBM服務(wù)器保修時(shí)間長(cháng)度 IBM服務(wù)器的保修時(shí)間長(cháng)度受到多個(gè)因素的影響,包括服務(wù)器型號、使用環(huán)境、維護方式等。一般而言,IBM服務(wù)器的保修期為三年。某些型號的服務(wù)器可能會(huì )有延長(cháng)保修時(shí)間的選項,用戶(hù)可以在購買(mǎi)時(shí)咨詢(xún)IBM客戶(hù)服...

    Cisco時(shí)間服務(wù)器的配置步驟詳解

    Cisco時(shí)間服務(wù)器的配置步驟詳解

      本篇文章主要是為了讓大家更好地了解和掌握Cisco時(shí)間服務(wù)器的配置步驟。在網(wǎng)絡(luò )系統中,時(shí)間同步一直是一個(gè)重要的問(wèn)題,時(shí)間同步不僅僅涉及到文件訪(fǎng)問(wèn)的記錄和文件的創(chuàng )建時(shí)間,還影響到安全憑證和網(wǎng)絡(luò )安全事件的記錄等等。因此,在網(wǎng)絡(luò )系統的構建中,需要對時(shí)間進(jìn)行統一同步,這時(shí)候Cisco時(shí)間服務(wù)器就應運而生。那么,到底Cisco時(shí)間服務(wù)器的配置步驟是怎樣的呢?    1、配置時(shí)間服務(wù)器 第一步:登錄Router設備,進(jìn)入全局配置模式。...

    「如何優(yōu)化服務(wù)器搭建時(shí)間,縮短服務(wù)器啟用周期」

    「如何優(yōu)化服務(wù)器搭建時(shí)間,縮短服務(wù)器啟用周期」

      在當前互聯(lián)網(wǎng)高速發(fā)展的時(shí)代,服務(wù)器的作用尤為重要。但是隨著(zhù)技術(shù)的不斷更新,服務(wù)器的搭建和啟用周期也越來(lái)越長(cháng),這不僅浪費人力資源,也拖慢了企業(yè)發(fā)展的進(jìn)程。因此,如何優(yōu)化服務(wù)器搭建時(shí)間,縮短服務(wù)器啟用周期,成為了每個(gè)公司都需要面對的課題。    1、簡(jiǎn)化操作流程 操作流程決定著(zhù)服務(wù)器搭建和啟用的速度,簡(jiǎn)化操作流程可以大大縮短服務(wù)器啟用周期。首先,要整合操作系統內置的配置工具和服務(wù)器管理工具,盡量減少手動(dòng)調整,增加自動(dòng)化處理。其...

    Linux服務(wù)器時(shí)間切換方法詳解

    Linux服務(wù)器時(shí)間切換方法詳解

      Linux服務(wù)器時(shí)間切換方法是Linux系統中非常重要的一個(gè)方面。在Linux服務(wù)器的日常運維中,時(shí)間同步一直都是一個(gè)比較麻煩的問(wèn)題。由于Linux存在時(shí)鐘漂移現象等特點(diǎn),這也就意味著(zhù)我們不能夠完全依賴(lài)于硬件時(shí)鐘,需要我們經(jīng)常性的進(jìn)行時(shí)間同步操作,為了保證系統時(shí)間的準確性。因此,本文將對Linux服務(wù)器時(shí)間切換方法進(jìn)行詳細闡述,涵蓋了NTP時(shí)間同步、手動(dòng)修改系統時(shí)間等方面,方便讀者學(xué)習理解。    1、NTP時(shí)間同步 NT...

    RM新时代官网网址|首入球时间
    <nav id="tdq72"></nav>
    1. <menuitem id="tdq72"><strike id="tdq72"></strike></menuitem>

      <cite id="tdq72"><button id="tdq72"></button></cite>

      <cite id="tdq72"></cite>
      <sup id="tdq72"><th id="tdq72"></th></sup>
    2. <nav id="tdq72"></nav>
      1. <menuitem id="tdq72"><strike id="tdq72"></strike></menuitem>

        <cite id="tdq72"><button id="tdq72"></button></cite>

        <cite id="tdq72"></cite>
        <sup id="tdq72"><th id="tdq72"></th></sup>
      2. rm官网 RM新时代平台靠谱平台入口 rm体育平台 新时代官网 RM新时代官方网站|首入球时间