應用程式可以使用的通訊端的最大數目

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:111855
本文已封存。本文係以「現狀」提供且不會再更新。
結論
通訊端支援特定的 Windows 通訊端供應商的最大數目是實作特定。應用程式應該做沒有假設關於特定數量的通訊端的可用性。
其他相關資訊
Windows 通訊端實作的詳細資料所述 WSAData 結構 WSAStartup() 傳回及定義如下:
struct WSAData {     WORD          wVersion;     WORD          wHighVersion;     char           szDescription[WSADESCRIPTION_LEN+1];     char          szSystemStatus[WSASYSSTATUS_LEN+1];     unsigned short     iMaxSockets;     unsigned short     iMaxUdpDg;     char FAR *     lpVendorInfo};				
On 報酬 WSAStart() 從 Windows NT
   iMaxSockets = 0x7fff (32767)				
iMaxSockets 其中是單一的處理程序可能可以開啟的通訊端最大數目。Windows 通訊端實作可以提供通用的通訊端集區配置到任何程序,或它可以配置每個處理序資源的通訊端。數字可以反映已設定 Windows 通訊端 DLL 或網路的軟體的方式。撰寫成一個指出是否由應用程式可以使用 Windows 通訊端實作應用程式時,也可以用數字。

比方說的 X Windows 伺服器可能 iMaxSockets 時,請檢查它啟動。如果通訊端數目小於 8,應用程式會顯示一個錯誤訊息指示使用者重新設定網路軟體。(這是一種情況可能會用 szSystemStatus 文字)。沒有特定的應用程式實際上可以配置 iMaxSockets 通訊端能保證,因為可能有其他 Windows 通訊端應用程式使用中。

不過,與無關的特定實作所支援的通訊端數目是應用程式可以實際使用的通訊端的最大數目問題。

Windows 通訊端應用程式可以使用的通訊端的最大的數是編譯時期取決資訊清單常數 FD_SETSIZE。若要這樣,從 Win32 SDK WINSOCK.H 檔案:
/* * Select uses arrays of SOCKETs. These macros manipulate such * arrays. FD_SETSIZE may be defined by the user before including * this file, but the default here should be >= 64. * * CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE * INCLUDED IN WINSOCK.H EXACTLY AS SHOWN HERE. */ #ifndef FD_SETSIZE#define FD_SETSIZE      64#endif /* FD_SETSIZE */ 				
在建構 fd_set 結構用於 select() 會使用這個值。 在 WINSOCK.H 預設值為 64。如果應用程式設計為能夠使用超過 64 通訊端,請在每個原始程式檔中定義資訊清單 FD_SETSIZE 之前包括 WINSOCK.H。其中一個方法的這樣做這是編譯器選項內定義在中加入 Makefile 如新增-DFD_SETSIZE = 128 編譯器命令列的選項,為 Microsoft C。

注意: 定義 FD_SETSIZE 做為特定的值並不會影響通訊端所提供的 Windows 通訊端實作實際數目。
prodnt tcpip

警告:本文為自動翻譯

內容

文章識別碼:111855 - 最後檢閱時間:12/04/2015 10:00:32 - 修訂: 3.1

Microsoft Windows NT Advanced Server 3.1, Microsoft Windows NT Workstation 3.1

  • kbnosurvey kbarchive kbmt kbnetwork KB111855 KbMtzh
意見反應
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)