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

文章翻譯 文章翻譯
文章編號: 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 通訊端實作實際數目。

屬性

文章編號: 111855 - 上次校閱: 2006年11月1日 - 版次: 3.1
這篇文章中的資訊適用於:
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.1
關鍵字:?
kbmt kbnetwork KB111855 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:111855
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com