Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有 3 个组件客户端-代理-服务器,有时当代理负载过重时,套接字缓冲区配置为 1 MB 被填充。有没有办法一次性读取整个缓冲区 1 MB 然后进行处理?
供参考:
所有数据包都不会超过 MTU 大小,都是按定义的结构格式,其中还添加了每个数据包的长度。
代理在客户端和服务器之间路由数据,因此尝试使用生产者和消费者线程但问题未解决
简短的回答:不。
长答案:伯克利风格的套接字实现允许每次调用只接收或发送一个数据包。因此,不可能读取完整的网络流并在另一端重播。
原因之一是您的 UDP 套接字可以从多个来源接收数据。该接口应该能够将元信息(如发送方套接字地址,以及至少数据包大小)传递给调用方。这是一堆数据应该被解析,你会选择符合标准的数据包。最后,您可以构建要发送的数据包。
由于您必须有可能检查每个数据包,因此如果确实需要该数据包,则需要一个函数来从该数据包中读取数据包。这就是功能recvfrom。
recvfrom
我在将 javascipt 中的 < 与函数 match() 匹配时存在冲突。请注意,相同的行代码在 wamp 中有效,但在 lampp(linux) 中无效。
with test, I notifie that the problem comes from <? : there's a warning 'par
1 java - 如何在播放框架中上传文件?
1 php - Mysql数据库选择方法
2 java - JavaFX-2:如果没有手动设置,如何获取窗口大小?
1 jquery - 冻结列中的 jqGrid 错误
2 c# - 如何使用 LINQ 动态构建 xml?
2 arrays - 在 vb.net 中重新初始化数组的任何快捷方式
1 javascript - 从外部源加载 Gmap 上的标记
1 python - Python - Redis:序列化对象以存储在 Redis 中的最佳实践
Reference php × 1429865 c/c++ × 756500 nginx × 49975 mongodb × 159057 mybatis × 3233 anaconda × 13410 pycharm × 14671 python × 1902243 vscode × 56040 docker × 110988 github × 49000 flask × 49129 ffmpeg × 24037 jmeter × 16910 matplotlib × 63493 bootstrap × 54641