我需要以下情形的一個示例應用程序
1)IOCP TCP服務器能夠接受請求
2)客戶端作出的請求,併發送接收操作的
3)SERVER關閉連接
4)客戶端打開另一個插座,用於連接和做派接收操作
樣品TCP客戶端/服務器應用
有了這個例子,我想看看客戶端如何打開連接和服務器關閉該連接後又一次成功的連接可以與客戶端進行,並再次做派接收操作
實際上服務器如何處理丟棄的連接和套接字保持打開不需要?
請幫我那
這可以吹我的身體新的靈魂!
我需要以下情形的一個示例應用程序
1)IOCP TCP服務器能夠接受請求
2)客戶端作出的請求,併發送接收操作的
3)SERVER關閉連接
4)客戶端打開另一個插座,用於連接和做派接收操作
樣品TCP客戶端/服務器應用
有了這個例子,我想看看客戶端如何打開連接和服務器關閉該連接後又一次成功的連接可以與客戶端進行,並再次做派接收操作
實際上服務器如何處理丟棄的連接和套接字保持打開不需要?
請幫我那
這可以吹我的身體新的靈魂!
我寫了一系列的代碼項目的文章幾年前,這給出了一組代碼,用於構建基於TCP IOCP服務器。該代碼是在C++中,你的問題是標籤的「.NET」,但它似乎不太可能,你會想使用完成端口直接,因爲你可以使用各種異步套接字方法做同樣的事情,開發.NET服務器,而無需讓你的雙手與IOCP的實際一面骯髒。
反正...
第一篇文章鏈接到從這裏:http://www.serverframework.com/products---the-free-framework.html
我,因爲更新的代碼一點,可以發現here。
有沒有客戶端代碼,但你可以通過telnet連接到服務器併發送和recv數據...
我只是想知道它處理如何丟棄連接,這是非常重要的,假設一個黑客試圖打開1000連接到我的服務器和服務器拒絕這一點,但套接字創建連接仍然連接後,我認爲它使用服務器資源爲你可以看到netstat命令 – Ehsan 2010-07-27 21:07:51
這一切都取決於你如何編寫服務器。如果客戶端打開1000個連接並且什麼也不做,那麼這些連接將會佔用服務器資源。也許你的服務器有一個需要登錄的協議,你可以確保連接不會在'預登錄'階段停留超過x秒,如果它們連接,它們就會斷開連接。這與IOCP方面沒有任何關係你如何處理這種情況,你會得到每個連接或選擇基於服務器的舊學校線程相同的問題。 – 2010-07-28 07:29:14
http://www.codeproject.com/KB/IP/iocp_server_client.aspx
這篇文章給了我IOCP和TCP/IP客戶端服務器的一個公平的理解處理。具有多個客戶端處理功能。
對於你的問題,如果你有限制空閒線程,那麼服務器應該是智能啓動定時器客戶端並且可以像一個裝飾每個端口上的服務器之間的每個連接。
停止收到來自同一客戶端1000個connetions你應該要挖掘更多的進入網絡編程我想。
*「這在我身上吹了新的靈魂」 * - 我要找到一種方法,儘快使用此表達式。 – 2010-07-27 19:57:24
未指定語言。因爲你添加了.NET標籤,我猜C#?但請註明。 – abelenky 2010-07-27 19:59:12