我打電話給ConnectEx()
方法。它返回FALSE值,所以我用WSAGetLastError
調用來檢查錯誤代碼。有時會發生返回值爲零的情況。這是什麼意思?WSAGetLastError返回零
5
A
回答
4
發生錯誤時應立即調用WSAGetLastError。 某些功能可能會將上次擴展的錯誤代碼重置爲0
更多信息在MSDN。
1
沒有值爲0的Winsock錯誤代碼,因此我最好猜測的是您沒有調用WSAStartup。
0
winsock recv函數可以返回一個錯誤(SOCKET_ERROR),然後即使下一次調用WSAGetLastError,它仍然可以返回0作爲錯誤代碼。
從調試模式切換到發佈模式時,我首先發現了這個'錯誤'。我的代碼在調試時工作正常,但在發佈模式下會斷開客戶端連接。
原因是接收緩衝區不夠大。但這在任何地方都沒有記錄。在我的情況下釋放模式使事情足夠快,足以溢出緩衝區。
簡單地增加緩衝區的大小將解決此問題(在recv的是第三個參數。
希望這有助於。好運
相關問題
- 1. WSAGetLastError()返回122
- 2. WSAGetLastError()返回64?
- 3. Win32 :: shutdown()返回-1,但WSAGetLastError()返回0?
- 4. UDP套接字上的recvfrom()返回-1,但WSAGetLastError()返回0
- 5. cudaEventRecord返回零
- 6. fread返回零
- 7. getLocationOnScreen()返回零
- 8. CTFramesetterCreateFrame返回零
- 9. URLWithString:返回零
- 10. UIImage返回零
- 11. libvlc_media_player_get_time返回零
- 12. UIImage.animatedImageNamed返回零
- 13. NSBundle.mainBundle()返回零
- 14. CFBundleDisplayName返回「零」
- 15. ABAddressBookGetPersonWithRecordID返回零
- 16. UserDefaults.standard.string()返回零
- 17. MPMediaItemPropertyAssetURL返回零
- 18. AssetForURL返回零
- 19. NSBundle返回零
- 20. NSJSONSerialization.JSONObjectWithData返回零
- 21. UUID返回零
- 22. indexofobject返回零
- 23. UILabel返回零
- 24. cellForRowAtIndexPath返回零
- 25. mysql_num_rows()返回零
- 26. Swift:NSDate.day返回零
- 27. contentsOfDirectoryAtPath返回零
- 28. AVCaptureDevice返回零
- 29. NSURLAuthenticationChallenge.sender返回零
- 30. NSDateComponents返回零