2013-03-22 63 views
1

下面提到我現在面臨的問題,同時創造一個插座,以配置, 代碼:無效的參數而創建的Socket

sid = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 

錯誤詳細信息:Number - 22, String - Invalid argument

的錯誤不是相當一致。在10次運行中,這將發生3至4次。 該代碼是爲Android操作系統編譯的(對於MAC & Windows平臺,它的工作原理是十分之十)。 請建議可能的原因,並解決這個問題。

+0

你可能想向我們展示瞭如何測試誤差。 – alk 2013-03-22 07:52:23

+0

沒有具體的方法來模擬這個問題,它是不一致的。如果相同的套接字代碼在多個線程上運行,「可能」在一個或兩個線程中失敗,或者如果應用程序重新啓動,「可能」工作正常。 – NEB 2013-03-22 11:36:52

+0

用於獲取失敗的代碼片段是「if(INVALID_SOCKET == sid){printf(」Number - %d,String - %s「,errno,strerror(errno));}」 – NEB 2013-03-22 11:47:37

回答

-1

請檢查您的可執行文件所在目錄/路徑的權限。 看到這個鏈接,類似的錯誤並修復在Windows

http://social.msdn.microsoft.com/Forums/en-US/wsk/thread/3076a9cd-57a0-418d-8de1-07adc3b486bb/

+1

我懷疑「windows bug 「會導致Android上的套接字錯誤功能。 – alk 2013-03-22 12:39:52

+0

@alk:我不是說它在android上的窗口bug。我剛纔建議它可能是許可問題。 – user2181624 2013-03-25 06:43:41

+0

我懷疑它是否是一個許可問題,如果是這樣的話,理想情況下每次都應該發生錯誤,而不是偶爾發生。此外,我正在Android設備上安裝APK,並從那裏執行它。日誌是從設備寫入/接收的。我懷疑它與設備上的許可有關(我可能是錯的)。 – NEB 2013-03-25 08:56:54