我定義了全局變量CSocket s;在關(guān)閉對話框onclose()函數(shù)中調(diào)用closesocket(s)出現(xiàn)異常,是不是跟定義了全局變量有關(guān)系,謝謝
2 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個贊
建議在調(diào)用closesocket()函數(shù)前判讀你所要關(guān)閉的socket是否存在(可能創(chuàng)建時就失敗,或者中間已經(jīng)關(guān)閉此socket)
if(s!=INVALID_SOCKET)
closesocket(s);
用GetLastError()函數(shù)的返回值判斷下是什么錯誤所產(chǎn)生的異常,用msdn查下closesock的函數(shù)返回值,下面有異常的類型

茅侃侃
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個贊
你既然用的CSocket來定義 s,就不能用 closesocket來關(guān)閉s,而要用CSocket自己的成員函數(shù)Close來關(guān)閉。
CSocket是封裝后的類,對它你不能再用底層的socket接口,比如
closesocket, 要用closesocket來關(guān)閉 SOCKET類型的,你就必須用 socket() 函數(shù)產(chǎn)生的socket,而不能用 CSocket類。
添加回答
舉報
0/150
提交
取消