比如base64傳輸文本內(nèi)容,假如有10MB從客戶端發(fā)送到服務(wù)端。那么服務(wù)端在接收這種數(shù)據(jù)的時候,是否會正常?
另外,TEXT最大支持多少MB的文本字符串發(fā)送呢?默認(rèn)是多大?是不是可以根據(jù)設(shè)置緩沖區(qū)大小,可以無限大?(只要客戶端能發(fā)送出來)
首先無論是客戶端還是服務(wù)端都是相對的概念,都有socket發(fā)送緩沖區(qū)和接收緩沖區(qū)的概念,所以建議抓住一頭來理解更容易:
1、workerman服務(wù)端在接收這10MB的數(shù)據(jù)時,是否正常取決于客戶端每次發(fā)送的數(shù)據(jù)包大小,服務(wù)端每個連接所能接收的最大包大小默認(rèn)為10MB,超過了就會被視為非法數(shù)據(jù)并斷開連接,不過你可以在應(yīng)用中手動修改默認(rèn)包大?。?br />
2、客戶端最大能發(fā)送多大的數(shù)據(jù)這取決于客戶端socket發(fā)送緩沖區(qū)的大小; 但是workerman作為客戶端時,略有不同,因為workerman本身還引入了一層應(yīng)用層緩沖區(qū),這個緩沖區(qū)的默認(rèn)大小是1MB,不過你仍然可以在應(yīng)用中手動修改這個默認(rèn)緩沖緩沖區(qū)的大??;所以不難發(fā)現(xiàn)某端發(fā)送數(shù)據(jù)大小既有可能取決于應(yīng)用層發(fā)送緩沖區(qū)大小,更會取決于內(nèi)核socket發(fā)送緩沖區(qū)大??;
3、某端可以發(fā)送無限大數(shù)據(jù)嗎? 根據(jù)前面的描述顯然不可能,更何況每個進(jìn)程所能分配的內(nèi)存大小也是受限的。