C++ 对于游戏服务器,最合适的boost::asio读/写方法是什么?
我正在使用boost::asio来创建套接字网络。该库有许多不同的发送和接收数据的方法,每种方法都执行类似的任务,但略有不同 对于发送数据,boost提供以下功能: 对于接收数据,boost提供以下功能: 其中,哪一个最适合用于游戏服务器,以及为什么?自由函数是由操作组成的C++ 对于游戏服务器,最合适的boost::asio读/写方法是什么?,c++,boost,boost-asio,C++,Boost,Boost Asio,我正在使用boost::asio来创建套接字网络。该库有许多不同的发送和接收数据的方法,每种方法都执行类似的任务,但略有不同 对于发送数据,boost提供以下功能: 对于接收数据,boost提供以下功能: 其中,哪一个最适合用于游戏服务器,以及为什么?自由函数是由操作组成的async\u read()和async\u write()自由函数。它们通过零次或多次调用流的async\u read\u some()或async\u write\u some()方法来实现 在异步操作完成之前
async\u read()
和async\u write()
自由函数。它们通过零次或多次调用流的async\u read\u some()
或async\u write\u some()
方法来实现
在异步操作完成之前,成员函数不能发送或接收所有数据。如果需要,应该使用自由函数。async\u read()
和async\u write()
自由函数是组合操作。它们通过零次或多次调用流的async\u read\u some()
或async\u write\u some()
方法来实现
在异步操作完成之前,成员函数不能发送或接收所有数据。如果您希望这样做,您应该使用免费函数。问题已经得到了回答,但也值得一提的是,
async\u write\u有些
与async\u send
完全相同,命名只是为了一致性,因为“send”适用于套接字,“write”适用于流
另一个需要注意的要点是,async\u write
free函数是Chris Kohlhoff所称的“组合操作”,这意味着即使它立即返回,在调用关联的处理程序之前调用另一个async\u write
是不安全的-如果没有预料到,这可能会导致各种问题。async\u write\u some
函数的级别较低,不受此影响
进一步阅读:这个问题已经得到了回答,但也值得一提的是,
async\u write\u有些
与async\u send
的功能完全相同,命名只是为了保持一致性,因为“send”适用于套接字,“write”适用于流
另一个需要注意的要点是,async\u write
free函数是Chris Kohlhoff所称的“组合操作”,这意味着即使它立即返回,在调用关联的处理程序之前调用另一个async\u write
是不安全的-如果没有预料到,这可能会导致各种问题。async\u write\u some
函数的级别较低,不受此影响
进一步阅读: