2011-09-30 55 views
0

我在c中有一個客戶端/服務器程序。當服務器運行時,我可以通過telnet發送命令,它工作正常。另外,nmap報告端口被打開。同樣,如果我的IP是Google的地址,我可以成功使用(connect(sock, (struct sockaddr *) &servAddr, sizeof(servAddr))。但是,如果我嘗試使用127.0.0.1進行連接,我會收到connect()-1響應。我使用13000範圍內的端口。
是否有一個原因,爲什麼telnet能夠與我的服務器通信,但我的客戶端程序不能?客戶端和服務器無法通信

回答

2

您有一個防止客戶端程序連接的本地防火牆(如果Windows上有此程序,您可能需要將客戶端程序列入白名單),或者您填寫的IP地址錯誤地傳遞給connect。根據您使用的操作系統,您應該檢查errnoGetLastError()以查看出了什麼問題。

1

你最好在strerror(errno)的問題上得到關於這個問題的詳細信息,如果在linux下,很多原因可能導致斷開連接。