我正在使用boost::asio
,TCP communication
和C++
创建一个客户端和一个通过TCP socket
进行通信的服务器。我需要客户端和服务器能够相互发送和接收数据。我能够让它们通过套接字进行通信,其中服务器不断发送一些数据,客户端不断读取套接字。它有效。
现在用于通信的其他方式: 对于客户端发送一些数据而服务器能够读取它,我可以使用相同的套接字吗?或者我需要使用单独的插座吗?是否可以在同一个套接字上读取和写入两个通过TCP进行通信的应用程序?
基于boost :: asio的示例来说明这将是很好的,如果可用的话。但我能够找到只有单向通信的例子。
答案 0 :(得分:2)
让客户发送一些数据&服务器能够读取它,我可以使用相同的套接字吗?或者我需要使用单独的插座吗?是否可以在同一个套接字上读取和写入两个通过TCP通信的应用程序?
是。 TCP是全双工的。应用程序定义了客户端和服务器之间交换消息的方式/方式。天气他们异步或同步,TCP不关心。
答案 1 :(得分:1)
tcp中的客户端服务器范例是客户端启动连接并且服务器侦听传入连接的范例。一旦建立了tge连接,就可以通过像http这样的更高层协议来确定数据的交换方式。就tcp而言,客户端和服务器都可以以他们选择的方式发送或接收数据。 Tcp是全双工的。