如何編寫可擴(kuò)展的基于Tcp / Ip的服務(wù)器我正處于編寫新的Windows服務(wù)應(yīng)用程序的設(shè)計(jì)階段,該應(yīng)用程序接受長(zhǎng)連接的TCP / IP連接(即,這不像HTTP,其中有許多短連接,而是客戶端連接并保持連接數(shù)小時(shí)或數(shù)天或甚至幾周)。我正在尋找設(shè)計(jì)網(wǎng)絡(luò)架構(gòu)的最佳方法的想法。我將需要為該服務(wù)啟動(dòng)至少一個(gè)線程。我正在考慮使用Asynch API(BeginRecieve等),因?yàn)槲也恢涝谌魏谓o定時(shí)間(可能是數(shù)百個(gè))我將連接多少客戶端。我絕對(duì)不想為每個(gè)連接啟動(dòng)一個(gè)線程。數(shù)據(jù)將主要從我的服務(wù)器流向客戶端,但有時(shí)會(huì)從客戶端發(fā)送一些命令。這主要是一個(gè)監(jiān)控應(yīng)用程序,我的服務(wù)器定期向客戶端發(fā)送狀態(tài)數(shù)據(jù)。有關(guān)盡可能擴(kuò)展的最佳方法的任何建議嗎?基本工作流程 謝謝。編輯:要明確,我正在尋找基于.net的解決方案(如果可能,C#,但任何.net語言都可以)BOUNTY注意:要獲得賞金,我希望不僅僅是一個(gè)簡(jiǎn)單的答案。我需要一個(gè)解決方案的工作示例,作為指向我可以下載的內(nèi)容的指針或在線的簡(jiǎn)短示例。它必須是基于.net和Windows(任何.net語言都可以接受)編輯:我要感謝所有給出好答案的人。不幸的是,我只能接受一個(gè),我選擇接受更為人熟知的Begin / End方法。Esac的解決方案可能會(huì)更好,但它仍然足夠新,我不確定它將如何運(yùn)作。我已經(jīng)提出了我認(rèn)為很好的所有答案,我希望我能為你們做更多的事情。再次感謝。
- 3 回答
- 0 關(guān)注
- 509 瀏覽
添加回答
舉報(bào)
0/150
提交
取消