WSAGetLastError

發布 科技 2024-02-09
5個回答
  1. 匿名使用者2024-02-05

    對於非重疊 (非非同步) 操作,該函式返回乙個大於 0 的值,以指示操作成功。 如果返回 0,則表示連線中斷,需要釋放套接字資源。 返回 Socket error(-1),表示錯誤,並使用 wsagetlasterror() 獲取錯誤原因。

    就非重疊操作而言,它們的語義與標準 recv 函式相同。

    對於非同步操作,如果沒有發生錯誤並且接收操作立即完成,則 wsarecv() 函式返回 0,請注意,在這種情況下,完成指示(啟動指定的完成例程或設定事件物件)已經發生。 否則,將返回套接字錯誤,應用程式可以通過 wsagetlasterror() 獲取該錯誤。 錯誤**WSA IO 掛起表示重疊操作已成功啟動,此後將出現完成指示。

    任何其他錯誤都表示重疊操作未成功啟動,並且將來不會有完成的跡象。

    如果設定了 msg 中斷標誌,則返回值的含義會發生變化。 零表示成功,具體含義同上。 否則,返回值將直接包含如下錯誤。

    這是必需的,因為無法在中斷環境中呼叫 wsagetlasterror()。 請注意,它僅適用於 Win16 環境,並且僅適用於在協議資訊結構中設定了 XP1 中斷位的協議。

  2. 匿名使用者2024-02-04

    #include

    int pascal far wsagetlasterror ( void );

    注意:此函式返回上次發生的網路錯誤。 當特定的 Windows 套接字 API 函式指示發生錯誤時,應呼叫該函式以獲取相應的錯誤**。

    關於 Windows 套接字提供程式的說明:

    這使您可以使用 wsagetlasterror() 函式來獲取最後乙個錯誤**,而不是依賴全域性錯誤變數,這是為了在將來提供與多執行緒環境的相容性。

    請注意,在非搶占式 Windows 環境中,wsagetlasterror() 僅用於獲取 Windows 套接字 API 錯誤。 在搶占式環境中,wsagetlasterror() 將呼叫 getlasterror() 來獲取每個執行緒的所有 win32 api 函式的錯誤狀態。 為了提高可移植性,應用程式應在呼叫失敗後立即使用 wsagetlasterror()

    請參見:wsasetlasterror()。

  3. 匿名使用者2024-02-03

    嘗試為不間斷連線新增 500 毫秒的延遲。

  4. 匿名使用者2024-02-02

    編譯失敗的原因是析構函式只宣告了,沒有定義如上所述程式 1 可以編譯和傳遞,而程式 2 無法傳遞的原因是程式 1 中的 myaccept() 函式定義放在類內,而在 C++ 中這個定義會預設為乙個內聯函式, 對於內聯函式,C++ 只有在類定義完成後才會處理,所以在編譯 m....

  5. 匿名使用者2024-02-01

    如果未發生錯誤,wsasocket() 將返回新介面集的描述符。 否則,將返回無效的套接字,應用程式可以呼叫 wsagetlasterror() 來獲取相應的錯誤。

相關回答