【发布时间】:2016-02-06 22:14:30
【问题描述】:
我想写服务器(TCP/IP),但我有一些问题,因为我不确定我的想法是否正确。
我需要一台只有一个线程的服务器。我需要向某些客户端读取和写入数据。我想使用来自boost::asio 的async_accept、async_write、async_read 等。
不同客户同时拨打async_write可以吗?如果我的程序为一个客户端调用 async_write 而在调用处理程序之前它为另一个客户端调用 async_write 怎么办?
关于async_read的同样问题。
没有问题吗?
是否保证(在这种情况下)第一次调用async_write 的回调将在第二个async_write 的回调之前调用?
如果某个回调(处理程序)需要很长时间怎么办?其他回调只是在堆栈中等待,直到这个回调完成?如果这个回调永远不会结束另一个回调将永远不会执行?我说的对吗?
【问题讨论】:
标签: c++ asynchronous boost network-programming boost-asio