2013-12-14 53 views
0

当我按照以下步骤接收消息并发送回复时,它会失败。 我正在使用TCP。我需要程序从它收到的同一端口发送数据。如何在C++中侦听后从同一端口发送数据?

bind() 
listen() 
accept() 
recv() 
connect()//it fails to connect here using the same socket.<br> 
send() 
+0

你是一个TCP服务器 - 客户端做连接,而不是你!摆脱连接尝试。只需发送到您用于recv呼叫的相同套接字。 –

+0

我想从同一个端口发送到另一个客户端 –

回答

3

看来你在理解tcp工作方式时有问题。有一台服务器和一个客户端。服务器等待连接,客户端进行连接。一旦建立连接,服务器和客户端就可以双向通信(即都可以发送和接收消息)。当然,他们的角色可能会改变,但这是它的工作方式。因此,服务器的作用:

bind() 
listen() 
accept() 
recv() 
send() 

它是停留在接受(),直到一个客户端,该服务器监听端口上进行连接()。

由于我的解释非常简短,我建议你阅读关于linux套接字的教程this