我正在使用boost::asio
, TCP communication
和C++
创建通过 TCP socket
进行通信的客户端和服务器。我需要客户端和服务器都能够相互发送和接收数据。我能够使它们通过套接字进行通信,其中服务器不断发送一些数据,而客户端不断在套接字上读取。它有效。
现在进行另一种通信方式: 为了让客户端发送一些数据并且服务器能够读取它,我可以使用相同的套接字吗?或者我需要使用单独的 socket 吗?两个通过 TCP 进行通信的应用程序是否可以在同一个套接字上进行读写操作?
如果有一个基于 boost::asio 的示例来说明这一点,那就太好了。但我能够找到仅涉及单向通信的示例。
最佳答案
block 引用>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/