Windows XP具有Windows防火墙,如果配置不正确,可能会干扰网络通信。如果您拥有管理员权限,则可以通过控制面板访问Windows防火墙小程序来关闭Windows防火墙。如果您的应用程序在关闭Windows防火墙的情况下运行,那么问题可能是由于防火墙的设置所致。
我们有它运行在多台PC上使用UDP/IP通信的应用,我们一直在做实验,以便应用程序能与谁没有管理员权限的用户在PC上运行。为了让我们的应用程序在多台PC之间进行通信,我们必须使用管理员帐户来修改Windows防火墙设置。
在我们的应用中,一个PC被指定为服务器和其他的都是客户端服务器/客户端组中,并有可能在同一子网几组。
第一个变化是使用Windows防火墙小程序的例外选项卡的功能,以创建我们用来通信的端口例外。
我们正在使用主机名称查找,以便客户端可以通过使用计算机名称来定位其分配的服务器,该计算机名称由带有破折号的助记符前缀和后接分配的终端号(例如SERVER100-1)组成。这允许多台服务器及其分配的客户端在同一子网上共存。客户端使用其前缀为分配的服务器生成计算机名称,然后使用主机名称查找来发现分配的服务器的IP地址。
我们发现,除非服务器PC的Windows防火墙启用了文件和打印机共享服务端口,否则使用计算机名称(通过“系统属性”对话框的“计算机名称”选项卡分配)的主机名称查找将不起作用。
所以我们不得不做出两个改变:(1)设置为我们用于通信和(2)启用文件和打印机服务例外选项卡中允许的主机名查找端口例外。
**编辑**
您也可以找到这个Microsoft Knowledge Base article on helpful on Windows XP networking。
而且看到这个article on NETBIOS name resolution in Windows。
你在使用什么库? inet_addr可能对您有用吗? http://msdn.microsoft.com/en-us/library/ms738563(VS.85).aspx – Patrick 2010-07-06 08:31:41