比如说我们有两个继承CSocket的类,一个是CClientSocket一个是CServerSocket.当然我们要用client去connect那个Server,然后一旦制定对了端口和IP,connect()会触发CServerSocket对象的OnAccept()函数,然后好多程序里面会这样写
void CServerSocket::OnAccept(int nErrorCode)
{
CClientSocket * m_pNewClient = new CClientSocket();
ASSERT(m_pNewClient != NULL);
Accept(*m_pNewClient);
CSocket::OnAccept(nErrorCode);
}
这就是说你随便的建立了一个心的CClientSocket对象来让ServerSocket接受,这样接受怎么保证是和请求连接的客户端Socket一致?不太明白啊,这个新建立的ClientSocket既没有制定IP,也没有端口,ServerSocket怎么会知道和谁去通信呢?
其实我的核心问题就是说
Accept(*m_pNewClient);
这个函数内部参数m_pNewClient是在服务器上面随随便便new出来的一个和客户端毫不相干的Socket,这样他Accept这个会有什么意义呢?
不太明白CSocket的OnAccept
答案:2 悬赏:0 手机版
解决时间 2021-03-24 20:50
- 提问者网友:wodetian
- 2021-03-23 22:16
最佳答案
- 五星知识达人网友:玩世
- 2021-03-23 23:37
Accept(*m_pNewClient);
这个函数起了你所说的哪些作用
这个函数起了你所说的哪些作用
全部回答
- 1楼网友:玩世
- 2021-03-24 00:55
首先定义一个自己的类如cmy类,继承csocket。在cmy类中的函数名如果在csocket中有,即发生重载。换句话说,就是子类中的函数,用父类存在的函数的名称,就发生重载,重载时,就可以重新定义函数参数,函数定义了。懂没
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯