【发布时间】:2017-02-25 02:11:36
【问题描述】:
我正在 C 中试验 Cesanta 的 Mongoose 服务器/“客户端”网络库。这是在 Windows 7 x64 中使用 Pelle's C。我正在尝试在端口 90 上制作一个支持 LAN 的文本消息应用程序,作为两个以对话为主的可执行文件(服务器和客户端),以支持与服务器的 20 个连接。 FWIW,我正在使用快速计时器来调用 mg_mgr_poll(&mgr, 0),它保留了 UI 响应能力并且使用了很少的 CPU。
Cesanta 提供了很好的服务器通信设置示例,并且可以完美运行。我也可以让客户端连接到服务器,但是服务器的IP地址必须用mg_connect()。
由于服务器的主机名对 LAN 是公开的,我希望向 LAN 询问该主机的 IP。不久前我在 VB 中工作过:
Dim host As New IPHostEntry
host = Dns.GetHostEntry(hostName)
Return host.AddressList.GetValue(0)
然而,随着 VB 项目变得越来越大,VB 变得陌生且困难得多,所以我迁移到了良好的旧 C。(也许它正在回退到 NetBIOS 名称查询,不知道。)不,我宁愿不迁移再次使用 C# 或 C++/VS。
关于 DNS 解析的 Cesanta documentation 相当模糊。像mg_connect(&mgr, "MyServerPC:90", ev_handler); 这样的代码只会崩溃,尽管mg_connect 表示它会尝试解析主机名。
能否 Mongoose 解析本地(LAN)主机名,以及如何?或者这是徒劳的,一切都应该在 Winsock 中手动完成吗?
【问题讨论】:
标签: c networking dns host lan