比如说我们有两个继承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这个会有什么意义呢?
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这个会有什么意义呢?
解决方案 »
- 想到的用来调试DLL的方法,是否可行?
- 多条件选择问题
- 如何让本程序抢到焦点(看似简单,实际麻烦的小问题)
- 请教网格问题
- 静态的非整型数据成员怎样在类和结构中初始化?
- 请问有没有人从事WIN CE的开发?
- 谁用过SetupBuilder Professional 1.5sc
- 招聘GPS嵌入式软件开发高级工程师
- 怎样把一个8位的已经灰度化的位图保存到硬盘上,是否自己创建文件头,文件信息头,保存系统调色盘(如果需要的话),还有就是图象信息,用CFILE或者序列化的方法将数据按BMP的文件格式保存到磁盘文件中。有没有代码实现,因为我是新手,经理逼着要,很痛苦,谢谢你
- VC如何调用DOS下LIB库函数?
- 那位高手给解释一下。在基于UDP的socket编程的时候。服务器程序这样写,运行会出现。乱码啊?
- 线程中创建SOKCET如何接收数据(在线等)
CClientSocket* pSocket = new CClientSocket(this);
//当客户端已经连接上服务端时,此时由pSocket对象处理数据的接受与发送
if (m_pSocket->Accept(*pSocket))
//..........
m_pSocket->Accept(*pSocket)这句就可以使新创建的socket和用于连接的m_pSocket相联系起来~~~
那么接下来pSocket就可以用于通信了,包含发送接受~~~
Accept(*m_pNewClient);
这个函数内部参数m_pNewClient是在服务器上面随随便便new出来的一个和客户端毫不相干的Socket,这样他Accept这个会有什么意义呢?
你可能没有注意到Accept(*m_pNewClient); 是由已经建立连接的Socket来联系的~~~
{
pSocket->Init();
m_connectionList.AddTail(pSocket);
}
else
delete pSocket;