【发布时间】:2018-10-24 08:45:20
【问题描述】:
我不熟悉网络编程和 Boost Asio 库的使用。
通过修改 Boost Asio“阻塞 TCP Echo 服务器和客户端”,我成功地实现了我的要求的任务,它在我的客户端和服务器之间执行操作事务。
现在,我需要将多个客户端连接到我的服务器。
我发现了一些相关链接,建议在服务器端使用async_accept。
所以,我尝试运行 Boost Asio 示例:“Async TCP Echo Server”和“Blocking TCP Echo client”,服务器区分不同的客户端并相应地处理它们。
但是,我的实际要求应该是,不是服务器为一个客户端完成整个过程,而是[服务器]必须为第一个客户端执行相同的操作,然后转到第二个客户端并执行这些操作,然后再次回到第一个客户端并按此顺序继续,直到所有操作完成。
是否有任何方法或想法可以帮助我使用 Boost Asio 执行此流程?另外我只是使用“阻塞 TCP Echo 客户端”,它只有一个普通的 connect() 而不是 async_connect(),现在这是个问题吗?
另外,是否可以使用 Boost Asio 通过服务器在多个客户端之间进行通信?
提前非常感谢您!
【问题讨论】:
-
你能提供一些你迄今为止尝试过的代码吗?
-
是的,我会添加代码
-
嗨,Bjoern Urban,我已经使用阻塞 TCP Echo 概念实现了客户端和服务器之间的通信。现在我希望服务器处理多个客户端,其中一个客户端一次不会完成整个操作,而是使用服务器完成其中的一部分,下一个等待的客户端继续其余的操作。我希望这些操作与客户端交错。
-
"它 [服务器] 必须为第一个客户端执行相同的操作,然后转到第二个客户端并执行这些操作,然后再次返回到第一个客户端并按此顺序继续直到所有操作都完成” - 这一点完全不清楚。我们不知道“这个命令”是什么意思、“回来”、“再次”或“操作”是什么。
-
嗨,就像,服务器将数据发送到第一个客户端并等待第一个客户端确认,然后将数据发送到第二个客户端并等待直到它确认之后服务器会再次请求第一个客户端返回发送的数据,同样要求第二个客户端返回数据。我只是在这里为我的代码使用 Blocking TCP Echo Server and Client。我不确定可以进行哪些确切的修改!这里,Clients 并没有断开与 Server 的连接,在 Server 完成另一个 Client 的请求后再次调用它们。
标签: c++ boost-asio