婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua獲取網(wǎng)絡(luò)時間(獲取時間同步服務(wù)器的時間)

Lua獲取網(wǎng)絡(luò)時間(獲取時間同步服務(wù)器的時間)

熱門標(biāo)簽:武漢外呼防封系統(tǒng)多少錢 清朝地圖標(biāo)注哈爾濱 冀州市地圖標(biāo)注 新岸線智能電銷機(jī)器人 漳州智云呼電話機(jī)器人 百度地圖標(biāo)注早餐區(qū)域 個人怎么在地圖標(biāo)注需要的店鋪 地圖標(biāo)注大廈 怎么去除地圖標(biāo)注

網(wǎng)絡(luò)授時服務(wù)是一些網(wǎng)絡(luò)上的時間服務(wù)器提供的時間,一般用于本地時鐘同步。 授時服務(wù)有很多種,一般我們選擇RFC-868。這個協(xié)議的工作流程是:(S代表Server,C代表Client)

S: 檢測端口37
U: 連接到端口37
S: 以32位二進(jìn)制數(shù)發(fā)送時間
U: 接收時間
U: 關(guān)閉連接
S: 關(guān)閉連接
協(xié)議非常簡單,用TCP連接上后,服務(wù)器直接把時間發(fā)送回來。發(fā)送的是從1900年1月1日午夜到現(xiàn)在的秒數(shù)。

使用luasocket
實現(xiàn)的方案有很多種,Lua不一定是最簡單的,選擇只是出于個人興趣。直接上代碼吧

-----------------------------------------------------------------------------
-- Network Time Protocal
-- Author: ani_di
-----------------------------------------------------------------------------
package.cpath = package.cpath .. ';D:\\tools\\Lua\\5.1\\clibs\\?.dll;?.dll'
local socket = require "socket.core"

server_ip = {
    -- "129.6.15.29",
    "132.163.4.101",
    "132.163.4.102",
    "132.163.4.103",
    "128.138.140.44",
    "192.43.244.18",
    "131.107.1.10",
    "66.243.43.21",
    "216.200.93.8",
    "208.184.49.9",
    "207.126.98.204",
    "207.200.81.113",
    "205.188.185.33"}

function nstol(str)
  assert(str and #str == 4)
  local t = {str:byte(1,-1)}
  local n = 0
  for k = 1, #t do
    n= n*256 + t[k]
  end
  return n
end

-- get time from a ip address, use tcp protocl
function gettime(ip)
  print('connect ', ip)
  local tcp = socket.tcp()
  tcp:settimeout(10)
  tcp:connect(ip, 37)
  success, time = pcall(nstol, tcp:receive(4))
  tcp:close()
  return success and time or nil
end

function nettime()
  for _, ip in pairs(server_ip) do
    time = gettime(ip)
    if time then 
      return time
    end
  end
end


代碼原理不細(xì)說,非常簡單。唯一值得一提的是socket庫包含。最開始用的這句 require "socket"

在解釋器中表現(xiàn)很好,但在用C中調(diào)用會找不到相應(yīng)的module。錯誤提示

  no field package.preload['socket']
  no file '.\socket.lua'
  no file 'F:\Projects\Lua\nettime\lua\socket.lua'
  no file 'F:\Projects\Lua\nettime\lua\socket\init.lua'
  no file 'F:\Projects\Lua\nettime\socket.lua'
  no file 'F:\Projects\Lua\nettime\socket\init.lua'
  no file 'D:\tools\Lua\5.1\lua\socket.luac'
  no file '.\socket.dll'
  no file '.\socket51.dll'
  no file 'F:\Projects\Lua\nettime\socket.dll'
  no file 'F:\Projects\Lua\nettime\socket51.dll'
  no file 'F:\Projects\Lua\nettime\clibs\socket.dll'
  no file 'F:\Projects\Lua\nettime\clibs\socket51.dll'
  no file 'F:\Projects\Lua\nettime\loadall.dll'
  no file 'F:\Projects\Lua\nettime\clibs\loadall.dll'.


網(wǎng)上也有好多類似的提問,大抵是沒仔細(xì)看作者的Guide。顯著的有這么一句

The other two environment variables instruct the compatibility module to look for dynamic libraries and extension modules in the appropriate directories and with the appropriate filename extensions.>

LUAPATH=/?.lua;?.lua LUACPATH=/?.dll;?.dll

至于"socket.core",windows默認(rèn)安裝位于“\socket\core.dll”。

C宿主調(diào)用

#include stdio.h>
#include string.h>
#include lua.h>
#include lauxlib.h>
#include lualib.h>
#include time.h>
#include Windows.h>

int load(lua_State* L, const char* func, unsigned int* utc) {
  lua_getglobal(L, func);
  if (lua_pcall(L, 0, 1, 0)) {
    printf("Error Msg pcall %s.\n", lua_tostring(L, -1));
    return -1;
  }

  if (!lua_isnumber(L,-1)) {
    printf("time should be a number\n" );
    return -2;
  }

  *utc = lua_tonumber(L,-1);
  lua_pop(L, -1);
  return 0;
}

void TimetToFileTime( time_t t, LPFILETIME pft )
{
  LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000;
  pft->dwLowDateTime = (DWORD) ll;
  pft->dwHighDateTime = ll >>32;
}

int main()
{
  lua_State* L = luaL_newstate();
  unsigned int utc = 0;
  luaL_openlibs(L);
 if (luaL_loadfile(L, "nettime.lua") || lua_pcall(L, 0, 0, 0)) {
    printf("Error Msg load %s.\n", lua_tostring(L, -1));
    return -1;
  }
  do {
  if(load(L,"nettime", utc) == 0) {
    time_t tt = utc - 2208988800L;
    SYSTEMTIME st;
    FILETIME ft;
    TimetToFileTime(tt, ft);
    if (FileTimeToSystemTime(ft, st))
    {
      printf("Today is: %d-%d-%d\n", st.wYear, st.wMonth, st.wDay);
      SetSystemTime(st);
    }
    break;
  } else {
    puts("No network!");
    Sleep(10000);
  }
  } while (1);
  lua_close(L);
  return 0;
}

標(biāo)簽:德宏 天門 濰坊 臺灣 宣城 天門 儋州 金昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua獲取網(wǎng)絡(luò)時間(獲取時間同步服務(wù)器的時間)》,本文關(guān)鍵詞  Lua,獲取,網(wǎng)絡(luò),時間,同步,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua獲取網(wǎng)絡(luò)時間(獲取時間同步服務(wù)器的時間)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua獲取網(wǎng)絡(luò)時間(獲取時間同步服務(wù)器的時間)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色综合天天性综合| 成人av在线观| 1024亚洲合集| 国产精品视频免费| 久久99日本精品| 欧美日韩国产精品自在自线| 亚洲欧洲在线观看av| 国产成人精品在线看| 久久九九99视频| 国产麻豆精品一区二区| 久久精品亚洲乱码伦伦中文| 国产精品一区二区在线观看网站| 欧美大胆人体bbbb| 国产伦精品一区二区三区视频青涩| 亚洲精品一区在线观看| 国产成人精品免费视频网站| 亚洲国产成人私人影院tom| 成人av免费在线观看| 亚洲资源在线观看| 欧美三级一区二区| 日日夜夜免费精品| 日韩女同互慰一区二区| 黄色精品一二区| 国产精品美女久久福利网站| 色乱码一区二区三区88| 天堂成人国产精品一区| 精品电影一区二区三区| 成人国产免费视频| 亚洲成va人在线观看| 欧美精品一区二区三区很污很色的| 国产成人免费网站| 免费看欧美女人艹b| 国产精品久久久久久久久免费丝袜 | 久久久精品2019中文字幕之3| 成人午夜视频免费看| 亚洲国产精品久久久男人的天堂| 久久这里只有精品首页| 91蝌蚪国产九色| 精品一区二区三区香蕉蜜桃 | 欧美成人一区二区三区片免费| 国产美女久久久久| 亚洲电影一区二区三区| 亚洲国产激情av| 欧美本精品男人aⅴ天堂| 夜夜嗨av一区二区三区中文字幕| 欧美日韩国产系列| 9久草视频在线视频精品| 天堂av在线一区| 91精品国产一区二区| 99精品黄色片免费大全| 久久99国产精品免费网站| 婷婷国产v国产偷v亚洲高清| 中文字幕一区二区三区在线观看| 欧美一区二区三区系列电影| 91女人视频在线观看| 国产自产v一区二区三区c| 午夜av一区二区| 亚洲视频在线一区| 久久中文娱乐网| 欧美成人国产一区二区| 911精品国产一区二区在线| 91色porny蝌蚪| 99久久婷婷国产综合精品| 国产一区二区美女| 美女网站色91| 日本视频一区二区三区| 石原莉奈一区二区三区在线观看| 亚洲女与黑人做爰| 国产精品久久久久久久岛一牛影视 | 91麻豆成人久久精品二区三区| 另类调教123区| 麻豆久久久久久| 精品一区二区三区免费观看| 国产一区二区三区国产| 丁香婷婷综合色啪| www.av精品| 在线观看不卡一区| 欧美日韩免费观看一区三区| 日韩一区二区在线看片| 久久综合九色综合97_久久久| 精品久久久久久久久久久久包黑料| 欧美裸体bbwbbwbbw| 久久久亚洲精品石原莉奈| 国产亚洲一区字幕| 亚洲少妇30p| 亚洲一区二区三区爽爽爽爽爽| 日韩精品每日更新| 精品一区二区三区的国产在线播放| 国产美女av一区二区三区| av在线播放不卡| 欧美日韩国产a| 久久美女艺术照精彩视频福利播放| 国产欧美精品国产国产专区| 亚洲一区二区三区在线播放| 韩国欧美国产1区| 97精品久久久午夜一区二区三区| 欧美在线观看一二区| 欧美一区2区视频在线观看| 国产三级欧美三级日产三级99 | 国产精品一二三区| 成人性生交大片免费 | 国产精品18久久久久| 色综合激情五月| 日韩一二三区不卡| 国产精品午夜春色av| 亚洲不卡在线观看| 国产盗摄一区二区| 日本精品视频一区二区| 欧美www视频| 亚洲人123区| 免费观看日韩电影| 97se亚洲国产综合自在线| 欧美日韩精品综合在线| 国产精品五月天| 美日韩黄色大片| 91久久人澡人人添人人爽欧美 | 日韩欧美成人午夜| 中文字幕中文字幕中文字幕亚洲无线| 亚洲成人av福利| 不卡的电视剧免费网站有什么| 91精品国产aⅴ一区二区| 国产精品免费视频网站| 久久99精品久久久久婷婷| 欧美日韩高清在线| 亚洲欧美日韩国产中文在线| 国产成人精品影院| 日韩视频在线观看一区二区| 一区二区成人在线| 成人av网址在线| 中文字幕av不卡| 国产成人午夜精品5599| 1024成人网| 日韩av中文字幕一区二区三区| 色国产综合视频| 国产精品高潮久久久久无| 国产精品一二二区| 久久久久国色av免费看影院| 日韩av网站免费在线| 欧美精品在线一区二区| 亚洲大片精品永久免费| 欧美影院一区二区三区| 亚洲永久免费视频| 欧美性猛交xxxx乱大交退制版| 一区二区三区中文字幕精品精品 | 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲一二三区视频在线观看| 色婷婷久久久亚洲一区二区三区 | 欧美人狂配大交3d怪物一区| 亚洲午夜精品久久久久久久久| 一本到不卡免费一区二区| 国产精品情趣视频| 色老汉一区二区三区| 亚洲综合视频在线| 欧美日韩国产高清一区二区三区| 免费成人av在线| 久久久国际精品| 成人av电影在线观看| 亚洲欧美日韩电影| 91精品国产欧美一区二区成人| 免费成人在线观看| 国产女人aaa级久久久级| 不卡的av在线播放| 天堂久久一区二区三区| 久久久久久日产精品| av激情成人网| 男女男精品网站| 久久精品亚洲一区二区三区浴池| 97国产一区二区| 亚瑟在线精品视频| 欧美mv日韩mv国产| 波多野结衣精品在线| 丝袜亚洲另类欧美| 国产午夜久久久久| 91久久免费观看| 国产做a爰片久久毛片| 国产精品入口麻豆原神| 欧美系列日韩一区| 国产在线日韩欧美| 亚洲另类在线一区| 日韩欧美成人一区二区| av电影一区二区| 日本在线不卡一区| 亚洲国产电影在线观看| 欧美精品一级二级三级| 国产jizzjizz一区二区| 亚洲高清在线精品| 中文字幕av一区 二区| 日韩一级精品视频在线观看| av一二三不卡影片| 国产永久精品大片wwwapp| 亚洲一区在线免费观看| 国产三级三级三级精品8ⅰ区| 欧美日韩精品三区| 成人动漫av在线| 精品亚洲成a人| 麻豆91免费看| **欧美大码日韩| 欧美成人乱码一区二区三区| 色综合色狠狠综合色| 国产福利一区二区|