我已经看到多个应用程序首先将它们的数据写入缓冲区,然后将该缓冲区写入 socket而不仅仅是直接写入 socket。
我有两个问题:
这是为什么?
如果直接写入套接字是合理的,那么:如何让套接字等待更多数据(我们在这里处理微秒/纳秒延迟)或者如何明确告诉套接字 发送(不写入内部缓冲区)数据。现在内核正在发送我在单独数据包中写入的每个字节,这显然不是最佳的;)
我在Go中制作我的应用程序,这里net.Conn实现了 io.Writer并且创建带有2 个参数的实用函数是有意义的:writer 本身和正在写入的数据,所以最后我可以输入它并且很高兴:
packets.WriteUint8(conn, 0x0)
我知道在许多语言中,缓冲区都有自己的实用方法来写入/读取结构,但是如果我想专门在 Go 中尝试上述方法怎么办?我试过寻找类似的问题,但失败了。信息:应用程序旨在在 Linux 上运行
梦里花落0921
相关分类