我想我會爲此開始一個新問題。 我有一個TCP服務器/客戶端設置,他們溝通我一般想要的方式。 1個服務器和1個客戶端。Winsock - 重新連接客戶端到服務器 - 10061
我現在要做的是添加功能,允許客戶端在連接丟失後自動重新連接到服務器。我無法在網上找到有關如何執行此操作的完整信息。這是(希望)相關的問題代碼:
SERVER:
case FD_ACCEPT: //Connection request
{
SOCKET TempSock = accept(s, (struct sockaddr*)&fromm, &fromlenn);
s = TempSock; //Switch old socket to the new one
m_sNetworkStatus.Format("[%s] accepted.", inet_ntoa(fromm.sin_addr));
m_hNetworkStatus.SetWindowTextA(m_sNetworkStatus);
}
第一個客戶端連接經過精細。服務器偵聽,客戶端連接,客戶端斷開連接... 但是客戶端第二次嘗試連接由此產生的客戶端IP地址(如服務器所見),使得打印inet_ntoa(fromm.sin_addr))
將輸出[0,0,0,0]
。因此,客戶端「認爲」它的連接,但它是不是和服務器打印,它接受連接,但沒有數據可以發送...斷開連接的客戶端,並試圖再次重新連接導致
連接拒絕10061錯誤。
(如果我從服務器端斷開,並聽取了新的端口有沒有問題)
謝謝!
完美謝謝! – Soran 2012-07-16 01:42:17