LUA 错误: 尝试对空值进行索引 @6:16

我正在尝试通过发送请求来检索 Entryhandle UUID。但是,每次我都会收到这个错误。有谁可以帮助我解决问题或指出我的错误所在呢?

local config={}

config.mcast_mac = "00:0a:cd:16:da:f1"

function rpc:epm()

 local pkt = CreateFromPath("ethernet/ip/udp/dcerpc/epm")

 --[[数据放在这里]]

 SendAndWait(pkt, function(res)
local epm = res.get_layer("epm")
--[[数据放在这里]]
handle = epm.EntryHandleUUID.to_string()

print("EntryHandleUUID:",handle)

 end

 end,2000)

  return handle

  end
点赞
用户2328287
用户2328287

这段代码不是有效的Lua代码。假设从print后面的行中删除end。如果要查找尝试访问空值的位置,可以在每个索引操作之前添加assert

local config = {}

config.mcast_mac = "00:0a:cd:16:da:f1"

assert(rpc,'rpc为NULL')

function rpc:epm()
  local pkt = CreateFromPath("ethernet/ip/udp/dcerpc/epm")
  --[[数据在此放置]]
  SendAndWait(pkt, function(res)
    assert(res,'res为NULL')
    local epm = res.get_layer("epm")
    --[[数据在此放置]]
    assert(epm,'epm为NULL')
    local uuid = epm.EntryHandleUUID
    assert(uuid,'epm.EntryHandleUUID为NULL')
    handle = uuid.to_string()
    print("EntryHandleUUID:",handle)
  end, 2000)
  return handle
end
2016-04-01 12:05:51