今天遇到一個這樣的問題,在進行SOCKET連接時,地址和端口都正確,對側服務器端也處於監聽狀態,但仍會報錯,錯誤是:
Connection refused
後來發現,問題原因是字節序錯誤,源代碼中是這樣寫的:
#ifdef _LITTLE_ENDIAN
server.sin_port=xshort(portNumber);
#else
server.sin_port=portNumber;
#endif
要想使用低字節序進行傳輸數據,則需要在makefile中加入對_LITTLE_ENDIAN的定義,於是在makefile 中加入瞭如下紅色部分:
DEFINES = -D_REENTRANT -DCH7_Q -DLINUX -D_LITTLE_ENDIAN
重新編譯後,socket連接正常。
作爲一個經驗記錄下來。