最近寫一個服務端和別人進行通信,因為要用執行緒接收資料,所以在FD_READ事件下用了一個CreateThreadh函式,并在類中宣告了一個靜態的執行緒函式RecvProcv(),但是運行的時候,執行緒函式的socket,地址等等都被提示沒有定義,但是socket的變數已在類中定義了,速求指教!!
uj5u.com熱心網友回復:
你的socket需要創建,以及跟客戶端的連接accept中,系結起來,然后才能讀取資料uj5u.com熱心網友回復:
網上搜“網路編程I/O模型”,或者參考這個http://blog.csdn.net/woshinia/article/details/8585930
按照具體業務需要修改下
uj5u.com熱心網友回復:
帖代碼看看,一般是因為沒初始化uj5u.com熱心網友回復:
執行緒同步問題,造成變數未初始化,執行緒函式就被呼叫了uj5u.com熱心網友回復:
執行緒函式是類的靜態函式,不能直接使用類成員變數。解決方法,1是在執行緒函式傳入物件的指標,執行緒函式內通過指標再訪問類成員;
2是使用C++11,簡單,而且靈活多了
uj5u.com熱心網友回復:
類的靜態成員函式不能直接訪問類的普通成員函式或者成員變數,但是反過來普通成員函式可以訪問靜態成員函式或者靜態成員變數,這個是C++基礎啊~uj5u.com熱心網友回復:
5樓6樓說的對轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/133287.html
標籤:進程/線程/DLL
上一篇:VS2013 MFC 編程編譯錯誤:error C2039: “strcpy”: 不是“`global namespace'”的成員
