TEXT协议传输一次性最大文本数据可以有多大?

0

比如base64传输文本内容,假如有10MB从客户端发送到服务端。那么服务端在接收这种数据的时候,是否会正常?


另外,TEXT最大支持多少MB的文本字符串发送呢?默认是多大?是不是可以根据设置缓冲区大小,可以无限大?(只要客户端能发送出来)

已邀请:

blogdaren - 专注C编程、PHP内核、LINUX、VIM【http://www.phpcreeper.com】

赞同来自:

首先无论是客户端还是服务端都是相对的概念,都有socket发送缓冲区和接收缓冲区的概念,所以建议抓住一头来理解更容易:
1、workerman服务端在接收这10MB的数据时,是否正常取决于客户端每次发送的数据包大小,服务端每个连接所能接收的最大包大小默认为10MB,超过了就会被视为非法数据并断开连接,不过你可以在应用中手动修改默认包大小;
2、客户端最大能发送多大的数据这取决于客户端socket发送缓冲区的大小; 但是workerman作为客户端时,略有不同,因为workerman本身还引入了一层应用层缓冲区,这个缓冲区的默认大小是1MB,不过你仍然可以在应用中手动修改这个默认缓冲缓冲区的大小;所以不难发现某端发送数据大小既有可能取决于应用层发送缓冲区大小,更会取决于内核socket发送缓冲区大小;
3、某端可以发送无限大数据吗? 根据前面的描述显然不可能,更何况每个进程所能分配的内存大小也是受限的。

要回复问题请先登录注册