在工作中,遇到游戏服通过UDP协议向日志服发送日志时,日志服有时无法识别游戏服发送过来的日志消息。
通过抓包发现,Windows收到的数据包大小,比实例的数据包小。
猜测是Windows socket 缓冲区大小设置问题。尝试把Windows socket 缓冲区大小调整变大,解决问题。
打开注册表regedit:
[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet\Services\Afd\Parameters]
DefaultReceiveWindow = 1800 (16进制)
DefaultSendWindow = 1800(16进制)
注意:就算是64位的操作系统,也要选择DWORD(32-位)值
相关推荐
默认情况下,操作系统为socket分配一定的接收缓冲区大小,但这个大小可以通过setsockopt函数进行修改。打印默认接收缓冲区大小可以使用getsockopt函数,传入SO_RCVBUF选项,获取到的就是当前socket的接收缓冲区大小...
- `socket_options`: 设置网络套接字的参数,如TCP缓冲区大小和超时时间。 - `queue_master_locator`: 控制消息队列的主副本选择算法,例如,可以选择基于CPU负载均衡或随机分配。 在实际使用中,你需要根据自己...
5.5.1 复制、填充、移动、清零内存块、防止缓冲区溢出 144 5.5.2 获得当前系统内存使用情况 146 5.5.3 判断内存指针的可用性 147 5.6 各种内存分配方式的关系与比较 148 5.6.1 标准C内存管理函数与Windows...
5.5.1 复制、填充、移动、清零内存块、防止缓冲区溢出 144 5.5.2 获得当前系统内存使用情况 146 5.5.3 判断内存指针的可用性 147 5.6 各种内存分配方式的关系与比较 148 5.6.1 标准C内存管理函数与Windows...
- `len`: 缓冲区的大小,即最大可接收的字节数。 - `flags`: 可选标志,控制接收操作的细节,如非阻塞模式等。 `recv`函数会返回接收到的实际字节数,或者在发生错误或连接关闭时返回-1。通过Hook `recv`函数,...
- **bulk_insert_buffer_size**: 用于批量插入操作的缓冲区大小,增加此值可以提高大量插入数据时的性能。 - **key_buffer_size**: 索引缓存的大小,直接影响MyISAM表的性能。 - **join_buffer_size**: 用于JOIN操作...
* bulk_insert_buffer_size: bulk_insert_buffer_size 变量控制着批量插入操作的缓冲区大小。 * key_buffer_size:key_buffer_size 变量控制着索引缓冲区的大小。 * query_cache_limit:query_cache_limit 变iable ...
- **功能描述**:设置单个顺序读取操作的缓冲区大小。 - **设置建议**:根据数据读取量和服务器内存情况调整。 10. **read_rnd_buffer_size=n** - **功能描述**:设置随机读取操作的缓冲区大小。 - **设置建议*...
- **磁盘I/O**:通过减少I/O操作次数和增加缓冲区大小来优化磁盘读写性能。 - **控制Checkpoint频率**:对于支持的数据库系统(如Oracle),适当控制Checkpoint频率有助于提升性能。 4. **Java虚拟机调优**: - ...