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