c++ - boost::asio::tcp 套接字上的双向通信

标签 c++ sockets boost tcp boost-asio

我正在使用boost::asio , TCP communicationC++创建通过 TCP socket 进行通信的客户端和服务器。我需要客户端和服务器都能够相互发送和接收数据。我能够使它们通过套接字进行通信,其中服务器不断发送一些数据,而客户端不断在套接字上读取。它有效。

现在进行另一种通信方式: 为了让客户端发送一些数据并且服务器能够读取它,我可以使用相同的套接字吗?或者我需要使用单独的 socket 吗?两个通过 TCP 进行通信的应用程序是否可以在同一个套接字上进行读写操作?

如果有一个基于 boost::asio 的示例来说明这一点,那就太好了。但我能够找到仅涉及单向通信的示例。

最佳答案

For client to send some data & server to be able to read it, can I use the same socket for this? Or Do I need to use a separate socket ? Is it possible to read and write on the same socket for two applications communicating over TCP ?

是的。 TCP 是全双工的。应用程序定义客户端和服务器之间交换什么/如何交换消息的协议(protocol)。无论它们是异步还是同步,TCP 并不关心。

关于c++ - boost::asio::tcp 套接字上的双向通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41261779/

相关文章:

c++ - STL 和发布/调试库一团糟

c++ - 平方的大数的模数

c - 与许多实时设备保持连接

php - 如何使用 PHP 通过 UDP 将数据发送到 IP 地址?

c# - 想要一个用于传入数据的 .Net 套接字事件处理程序

c++ - 为什么在使用 boost::function 调用函数对象时不需要类实例

c++ - 从 boost::shared_ptr<T> 转换为 boost::shared_ptr<const T>

c++ - 临时住址?

c++ - 在 OpenGL 中使用索引缓冲区对象的结构会导致段错误

c++ - 包含 boost::numeric::ublas::matrix 的类的运算符重载