繁体   English   中英

使用async_write同时写入不同的套接字

[英]Writing to different sockets in the same time using async_write

我想写服务器(TCP / IP),但我有一些问题,因为我不确定我是否认为正确。

我需要只有一个线程的服务器。 我需要向某些客户端读取和写入数据。 我想从boost::asio使用async_acceptasync_writeasync_read等。

如果同时为不同的客户端调用async_write可以吗? 如果我的程序为一个客户端调用async_write ,并且在调用处理程序之前为另一个客户端调用async_write怎么办?

关于async_read的相同问题。

没问题吗

(在这种情况下)是否保证在第一次从async_write进行回调之前会先调用从async_write进行的回调?

如果某个回调(处理程序)花费很长时间怎么办? 其他回调仅在堆栈中等待,直到完成该回调? 如果此回调永无休止,则将永远不会执行另一个回调? 我对吗?

将异步读取和写入调用重叠到不同的套接字没有问题。 我建议您为每个连接分配自己的链,以便将来在决定添加TLS支持或使用多个线程的情况下不会中断。 可以按任何顺序调用完成处理程序,具体取决于操作实际完成的顺序。 当然,您不能同时在同一连接上进行两个异步读取操作或两个异步写入操作。

  • 不,这不是问题。
  • 不,这不是必须的。
  • 不,回调不应互相等待。
  • 不,你说的不对。

套接字I / O对每个套接字独立进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM