簡體   English   中英

我在Windows Server 2003中可以打開的套接字數量的上限是多少

[英]What is the upper limit on the number of open sockets I can have in Windows Server 2003

我正在用.NET構建聊天服務器。 我嘗試打開大約2000個客戶端連接,而我的Linksys WRT54GL路由器(帶有番茄固件)每次都掉線。 當我在Azureus比特流客戶端上打開多個連接時,也會發生同樣的事情。

我有三個問題:

  1. 我可以在Windows Server 2003中打開套接字的數量有限制嗎?
  2. Linksys路由器有問題嗎? 如果可以,建議使用更好的硬件嗎?
  3. 有沒有辦法共享套接字,以便我可以用更少的資源處理更多的開放客戶端連接?

正如我之前提到的, Raymond Chen在這種問題上有很好的建議:如果您不得不詢問操作系統限制,那么您可能做錯了什么。 IP協議最多只允許65535個端口,其中許多端口是保留的,不能用於一般用途。 我建議您需要更詳細地考慮您的消息傳遞協議,以便操作系統限制不成問題。 我敢肯定,有很多很好的資源來描述這樣的系統,並且肯定有人在這里有關於它的好主意。

編輯:我將對實現可擴展的聊天服務器進行一些思考。

首先,在服務器上指定一個端口以供客戶端進行通信。 每當客戶端需要更新聊天狀態(例如,新的用戶消息)時,請執行以下操作:

create message packet
open port to server
send packet
close port

然后,服務器執行以下操作:

connection request received
get packet
close connection
process packet
for each client that requires updating
  open connection to clients
  send update packet
  close connection

當開始新的聊天會話時,啟動會話的客戶端會向服務器發送“新會話”消息,其中包含客戶端用戶詳細信息和IP地址以進行響應。 服務器創建一個新的聊天會話,並使用會話ID進行響應。 然后,客戶端發送包含用戶鍵入的消息的數據包,服務器對它們進行處理,並將消息轉發給同一會話中的其他客戶端。 當客戶端離開聊天室時,它將向服務器發送“結束會話”消息。 當會話中沒有更多客戶端時,服務器將從會話中刪除客戶端並銷毀會話。

希望能讓您思考。

我在為Windows XP搜索類似內容時發現了這個( http://smallvoid.com/article/winnt-tcpip-max-limit.html ),我認為這應該適用於Windows 2003

我找到了一些我應該分享的答案:

Windows 2003 Server對可以使用的端口數有限制。 但這可以通過注冊表調整進行配置,以將MaxUSerPort設置從5000更改為64k(max)。

進一步探討,我意識到64k端口限制實際上是針對每個IP地址的,因此一台服務器可以輕松地獲得更多的端口,從而通過安裝多個網卡或將一個以上IP地址綁定到一個網卡來實現TCP連接。 這樣,您可以擴展系統以處理nx 64k端口。

幾天來,我的Window 7機器上的可用插槽出現了問題。 在閱讀了有關Win 7中套接字泄漏的一些文章之后,我應用了Windows補丁 -一切都沒有改變。

下面是一篇詳細描述Windows連接問題的文章: http : //technet.microsoft.com/zh-cn/magazine/2007.12.network.aspx

對我來說,它的工作如下:

  1. 打開注冊表編輯器
    • HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ Tcpip \\ Parameters:創建TcpNumConnections,REG_DWORD,十進制值500(可以根據需要設置); EnableConnectionRateLimiting,REG_DWORD,值0;
    • HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ Tcpip:創建MaxUserPort,REG_DWORD,十進制值65534
  2. 重新啟動Windows

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM