CAsyncSocket的问题

FingerStyle 2007-01-26 10:06:28
m_Server给m_Client, m_Client的 OnReceive有反映!
但是m_Client 给 m_Server发数据, 为什么 m_Server 的 OnReceive 没反映啊 ??

为什么??
...全文
321 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
FingerStyle 2007-01-26
  • 打赏
  • 举报
回复
呵呵, 刚才突然发现这个问题了

每个刚创建的 m_Send[i] 都要SetParent(), m_Send[] 就不响应了...
FingerStyle 2007-01-26
  • 打赏
  • 举报
回复
CServer只要响应消息的话 就会传到 ServerDlg 里处理....
FingerStyle 2007-01-26
  • 打赏
  • 举报
回复
这个类是个Dialog .

class CServer : pubic CAsyncSocket
{
private:
CDialog* m_pwnd;
void OnAccept()
{
.....
}
voie SetParent(CDialog* p)
{
m_pwnd = p;
}
void OnReceive()
{
((CServerDlg*)m_pwnd)->OnReceive();
}
};

class CServerDlg : ..
{
CServer m_Listen;
Cserver* m_Send[100];


};

m_Listen.SetParent(this); 在 CServerDlg的构造函数里....


Dlg 和 Socket 之间的关系....


gxh2004 2007-01-26
  • 打赏
  • 举报
回复
void CServerDlg::OnReceive() 从CAsyncSocket继承?我拷,你的那个类到底是个dialog还是一个socket啊?
FingerStyle 2007-01-26
  • 打赏
  • 举报
回复
上面的服务器继承的 CAsyncSocket
FingerStyle 2007-01-26
  • 打赏
  • 举报
回复
客户端和服务端都是异步的 大致代码:

void CServerDlg::OnAccept()
{ //假设最多100个连接..
for (int i=0; i<100; i++)
{
if (m_Send[i] == NULL)
{
m_Send[i] = new CServerSocket;
break;
}
}
m_Listen.Accept(*m_Send[i]);

m_strMsg.Format("2%3d",i); //2 000 数据格式, '2' 表示设置客户端的连接 ID.
if (m_Send[i]->Send(LPCTSTR(m_strMsg), m_strMsg.GetLength()) == SOCKET_ERROR)
//客户端收到后设置自己的ID 为 i, 客户端之间通信通过服务器转发.
{
MessageBox("服务器出错");
return;
}
else
{

}
m_strState.Format("已经有%d个客户端与服务器连接", ++m_iNum);
UpdateData(false);
}


//服务起只要OnReceive就出错,不知道为什么...
void CServerDlg::OnReceive()
{
// char* pbuffer = new char[1025];
// int buffsize = 1024;
// CString str;
// int iReceive = m_Send[0]->Receive(pbuffer, buffsize);
//
// if (iReceive == SOCKET_ERROR)
// {
// MessageBox("发生错误","提示");
// }
MessageBox("ENENEN");

}
小弟为了应付毕业设计, 刚学CSocket所以请大虾们指教...
gbstar2021 2007-01-26
  • 打赏
  • 举报
回复
没有代码,只能猜测一下问题

客户端使用了异步的 socket ,在连接成功之前就调用了 send 所以会 send 失败。

尝试一下把客户端 CAsyncSocket 改成同步的 CSocket 试验一下。或者尝试在客户端 OnConnect 被调用之后再发送数据。
FingerStyle 2007-01-26
  • 打赏
  • 举报
回复
在线等....

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧