系统给每个socket 有个缓冲大小 默认 你的这个是 8K
最大当然只能读完缓冲的数据,
这个缓冲大小可以用这个修改 setsockopt SO_RCVBUF 修改
最大当然只能读完缓冲的数据,
这个缓冲大小可以用这个修改 setsockopt SO_RCVBUF 修改
解决方案 »
- mfc如何只改变输入框的长度不改变高度
- 如何让一个DOC文件与别的DOC文件变得不同
- SDK中如何设置菜单标记,使用代码动态设置.
- 小弟写了一个界面库,有兴趣的兄弟帮忙试用一下,谢谢
- 这个问题怎么解决?
- 急,请问VARIANT的DATE类型怎么转换为string????!怎么给Dec类型赋值啊????!
- 请 huangbeyond(校园人渣)、prettywolf(多情自古空余恨,此恨绵绵无绝期)、 hktl(風) 领分 100/人 谢谢!
- 怎样设计像vc6的IDE中workspace那样的child子窗口
- “::“什么意思?
- 很菜的问题??(这是怎么会事??)
- 一个问题
- MFC socket编程,文件传输:当服务器端接收到客户端连接请求时,会显示连接成功对话框
首先,原生QT中不支持这个选项的设置(猜测是不是因为跨平台的缘故)
其次,我通过API调用去设置接收缓冲区大小为64K后,我发送16K,但是我read到的数据却只有8796个字节。所有,应该有更深层的问题,导致的这个结果,期待更好的答案
if (m_client->bytesAvailable() > 8192)
{
QByteArray buffer = m_client->read(MAX_BUFFER_SIZE));
//......
}
QAbstractSocket::DatagramTooLargeError 6
The datagram was larger than the operating system's limit (which can be as low as 8192 bytes).