class ClientService : public ACE_Event_Handler{protected:ACE_SOCK_Stream sock_;public://返回ACE_SOCK_Stream對象引用ACE_SOCK_Stream& peer(void){return this->sock_;}int open(void){//針對輸入事件向反應器登記return this->reactor()->register_handler(this, ACE_Event_Handler::READ_MASK);}// Get this handler's I/O handle.virtual ACE_HANDLE get_handle(void) const{return this->sock_.get_handle();}// Called when input is available from the client.virtual int handle_input(ACE_HANDLE fd){//printf("服務器連接上了");const size_t INPUT_SIZE = 4096;char buffer[INPUT_SIZE];int i;ssize_t recv_cnt;if ((recv_cnt = this->sock_.recv(buffer, sizeof (buffer))) <= 0){//接受到的數據為0個字節,表明對端已關閉其socket。//返回-1,表示工作已完成。return -1;}for(i=0;i<recv_cnt;i++){printf("%d",buffer[i]);}//在這里你可以對接收的數據進行處理//...return 0;}// Called when this handler is removed from the ACE_Reactor.virtual int handle_close(ACE_HANDLE handle, ACE_Reactor_Mask close_mask){ ACE_Reactor_Mask mask;mask = ACE_Event_Handler::ALL_EVENTS_MASK |ACE_Event_Handler::DONT_CALL;this->reactor()->remove_handler(this, mask);this->sock_.close();delete this;return 0;}};RT,把上面的文件.h 和.cpp分開當我把.cpp 文件如下表示時,報錯,怎么修改://返回ACE_SOCK_Stream對象引用ACE_SOCK_Stream& peer(void){return this->sock_;}int open(void){//針對輸入事件向反應器登記return this->reactor()->register_handler(this, ACE_Event_Handler::READ_MASK);}// Get this handler's I/O handle.......錯誤 4 error C2673: “peer”: 全局函數沒有“this”指針 d:\新建文件夾\slq-op_io_server\clientservice.cpp 8 錯誤 5 error C2227: “->sock_”的左邊必須指向類/結構/聯合/泛型類型 d:\新建文件夾\slq-op_io_server\clientservice.cpp 8 也就是this 指的是什么,新手,麻煩幫幫忙
1 回答

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
ACE_SOCK_Stream& ClientService::peer(void)
{
}
int ClientService::open(void)
{
}
這是語法。
- 1 回答
- 0 關注
- 104 瀏覽
添加回答
舉報
0/150
提交
取消