客戶端是html5的websocket。服務器是c++ socket。現在握手成功,客戶端發送的websocket訊息服務器能正確決議出來,但服務器發送的資料,客戶端收不到,用谷歌瀏覽器除錯報A server must not mask any frames that it sends to the client.錯誤。但同樣的程式用c#寫就可以發送成功。
c++發送的代碼(只貼< 126的,我發的是很少的資料):int sum = 0;
char outmsg[2048];
memset(outmsg,0,sizeof(outmsg));
outmsg[sum++] = 130;
if(nSize < 126)
{
outmsg[sum++] = nSize;
}
memcpy(&outmsg[sum],pData,nSize);
sum += nSize;
pKey->m_WriteBufferQueue.Write(outmsg,sum);
用抓包工具抓包,c++跟c#發送到客戶端的包是一樣的。但為什么c++的客戶端報錯,而c#的不報錯呢。
uj5u.com熱心網友回復:
樓主有沒有解決這個問題啊!!!uj5u.com熱心網友回復:
樓主你好,我也遇到你相樣的問題,差別在于我沒有用C#,我用的java可以通的。你這個問題目前解決了嗎?uj5u.com熱心網友回復:
怎么解決的撒,怎么就沒后文了那!uj5u.com熱心網友回復:
我也遇到同樣的問題,暫時沒有解決,但是通過查資料大概定位到出現問題的地方:服務端像客戶端發送資料要多發送1個位元組uj5u.com熱心網友回復:
多發送一個‘\0'看看轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77350.html
標籤:網絡及通訊開發
