2013-12-14 56 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