一個進程可以並行打開/維護2個TCP連接嗎? [用於發送和接收]。 我嘗試以下情形:C中的多個TCP連接
1)客戶端連接到服務器的一個端口上,說13101.
2)一旦發出,它會等待另一個端口13102上拿到ACK。
3)在這裏服務器可以處理多個連接[在同一端口號上使用select()]。
現在,我面臨兩個問題: 1)服務器從客戶端1接收數據,它正在處理數據併發回ACK [給客戶端1],我正在準備一個新的TCP連接[與端口13102]和試圖發送數據。它以「拒絕連接」失敗。
2)爲了驗證上述問題,我編寫了另一個client2程序,它只是將數據發送到端口13102 [在client1處於監聽模式時]。仍然client2得到「連接被拒絕」錯誤。
Bret,Iam在同一臺機器上運行客戶端/服務器。是的,你說的是TCP/IP套接字是雙向的。當我第一次遇到上述錯誤時,我更改爲2個套接字。仍然錯誤仍然存在。 – 2010-11-20 10:25:51
您需要發佈一些源代碼才能獲得更多。連接被拒絕意味着或者沒有任何綁定到有問題的端口,或者其他東西拒絕它(因此防火牆理論)。你確實要調用bind()嗎? – 2010-11-20 10:34:18