iocp最大連接數(shù)實(shí)測能達(dá)到多少??
MSDN上說理論值在6W也就是系統(tǒng)端口的個(gè)數(shù).從網(wǎng)上查到一些資料說最大實(shí)測值在5W以上,不知道各位牛人自己實(shí)測的值能到多少?要自己測試值,程序誰寫的沒關(guān)系.
我自己測能達(dá)到2W時(shí),連接就已經(jīng)不穩(wěn)定了.
這個(gè)問題第1個(gè)回答:我測試過本機(jī)連入是50k(60k可以連上,但是通訊的時(shí)候容易斷線),局域網(wǎng)測試過80k,廣域網(wǎng),實(shí)際在用的是20k.
這個(gè)問題第2個(gè)回答:80K??
不論用那種IO模型,一個(gè)socket連接都要占一個(gè)端口號,windows共有端口65535個(gè),1000以內(nèi)的要留給系統(tǒng)使用.按這么計(jì)算不可能超過6W(MSDN上也是說理論值也是6W,與這種理解基本相符).
這個(gè)問題第3個(gè)回答:引用 2 樓 c38041125 的回復(fù):
80K??
不論用那種IO模型,一個(gè)socket連接都要占一個(gè)端口號,windows共有端口65535個(gè),1000以內(nèi)的要留給系統(tǒng)使用.按這么計(jì)算不可能超過6W(MSDN上也是說理論值也是6W,與這種理解基本相符).
連出受端口與限制,連接僅受內(nèi)存限制.
這個(gè)問題第4個(gè)回答:比如
socket server;
listen( server, ...);
socket client = Accept(...);這個(gè)client并沒有占用一個(gè)實(shí)際的端口.client代表的是什么?客戶端的套接字么!
這個(gè)問題第5個(gè)回答:引用 4 樓 c38041125 的回復(fù):
比如
socket server;
listen( server, ...);
socket client = Accept(...);這個(gè)client并沒有占用一個(gè)實(shí)際的端口.client代表的是什么?客戶端的套接字么!
client是一個(gè)客戶連接會(huì)話(session)
這個(gè)問題第6個(gè)回答:謝謝了,好好研究一下我的程序和測試環(huán)境,看是那的問題.
這個(gè)問題第7個(gè)回答:再問問,當(dāng)時(shí)你測試的機(jī)器配置是什么樣的?
這個(gè)問題第8個(gè)回答:引用 2 樓 c38041125 的回復(fù):
80K??
不論用那種IO模型,一個(gè)socket連接都要占一個(gè)端口號,windows共有端口65535個(gè),1000以內(nèi)的要留給系統(tǒng)使用.按這么計(jì)算不可能超過6W(MSDN上也是說理論值也是6W,與這種理解基本相符).
同意這個(gè)說法
這個(gè)問題第9個(gè)回答:引用樓主 c38041125 的帖子:
MSDN上說理論值在6W也就是系統(tǒng)端口的個(gè)數(shù).從網(wǎng)上查到一些資料說最大實(shí)測值在5W以上,不知道各位牛人自己實(shí)測的值能到多少?要自己測試值,程序誰寫的沒關(guān)系.
我自己測能達(dá)到2W時(shí),連接就已經(jīng)不穩(wěn)定了.
只是接收連接,啥也不做的話,用啥模型還不是一樣.反正都是將客戶的連接接收放一邊去不釋放就是.
這個(gè)問題第10個(gè)回答:如果在2003系統(tǒng)中,未分頁內(nèi)存可以達(dá)到250MB,除去一些驅(qū)動(dòng)使用的,基本還會(huì)有200MB可用的.服務(wù)程序每調(diào)用accept(),acceptex()等接收一個(gè)套接字,要使用1.5KB左右的未分頁內(nèi)存,如果200MB的未分頁內(nèi)存可用的話,那么可以接收到10多W個(gè)連接了(這里程序只是接收客戶連接,啥也不做的).如果是64位的系統(tǒng),能接收的更多呢.
討論這個(gè)有什么意義?
這個(gè)問題第11個(gè)回答:引用 2 樓 c38041125 的回復(fù):
80K??
不論用那種IO模型,一個(gè)socket連接都要占一個(gè)端口號,windows共有端口65535個(gè),1000以內(nèi)的要留給系統(tǒng)使用.按這么計(jì)算不可能超過6W(MSDN上也是說理論值也是6W,與這種理解基本相符).
補(bǔ)下基本知識.一個(gè)向外連接是需要占用到系統(tǒng)一個(gè)端口號的,但程序只是接收客戶連接,是不需要占用任何額外系統(tǒng)端口的.
這個(gè)問題第12個(gè)回答:引用 10 樓 WinEggDrop 的回復(fù):
討論這個(gè)有什么意義?
我只是問題一個(gè)最大的連接數(shù),至于其它功能怎么實(shí)現(xiàn)是其它的問題.不在這個(gè)討論之內(nèi).
如果你接觸過,或是大牛可以告訴我接收一個(gè)連接要不要占用一個(gè)套拉字.
這個(gè)問題第13個(gè)回答:引用 12 樓 c38041125 的回復(fù):
引用 10 樓 WinEggDrop 的回復(fù):
討論這個(gè)有什么意義?
我只是問題一個(gè)最大的連接數(shù),至于其它功能怎么實(shí)現(xiàn)是其它的問題.不在這個(gè)討論之內(nèi).
如果你接觸過,或是大牛可以告訴我接收一個(gè)連接要不要占用一個(gè)套拉字.
當(dāng)然要占用套接字,但收接連接不需要占用系統(tǒng)額外一個(gè)端口.套接字 != 端口.系統(tǒng)可用端口是有限的,但套接字只是受系統(tǒng)可用未分頁內(nèi)存限制.如果是64位系統(tǒng),有上G的未分頁內(nèi)存可用,你甚至可以接收幾十W個(gè)連接(如果帶寬和其它資源也足夠的話)
這個(gè)問題第14個(gè)回答:有點(diǎn)蒙.
記得套接字的定義是一個(gè)IP+port,比如 127.0.0.1 8080 這是一個(gè)套接字.
套接字 != 端口.??有點(diǎn)搞不懂了.
這個(gè)問題第15個(gè)回答:端口號的多少是可以在注冊表你修改的,不要說6W,只要機(jī)器性能好60W都可以
這個(gè)問題第16個(gè)回答:實(shí)測8W,由于缺少客戶機(jī),沒有繼續(xù)測,可能還會(huì)更多,保守估計(jì)100W連接沒問題。XP系統(tǒng),跟端口沒關(guān)系。
這個(gè)問題第17個(gè)回答:端口號的多少是可以在注冊表你修改的,不要說6W,只要機(jī)器性能好60W都可以