社区
网络编程
帖子详情
CAsyncSocket的问题
FingerStyle
2007-01-26 10:06:28
m_Server给m_Client, m_Client的 OnReceive有反映!
但是m_Client 给 m_Server发数据, 为什么 m_Server 的 OnReceive 没反映啊 ??
为什么??
...全文
321
8
打赏
收藏
CAsyncSocket的问题
m_Server给m_Client, m_Client的 OnReceive有反映! 但是m_Client 给 m_Server发数据, 为什么 m_Server 的 OnReceive 没反映啊 ?? 为什么??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
在线等....
CA
sync
Socket
聊天室源码(VS2013)
这是仿照《Visual C++ 网络通信编程实用案例精选》书中的聊天室开发的
CA
sync
Socket
聊天室,原来的程序是使用 WSAA
sync
Select 和 C
Socket
开发的,这个程序尝试使用
CA
sync
Socket
实现了相同的功能。代码已使用 ...
CA
sync
Socket
TCP实例
CA
sync
Socket
TCP实例
CA
Sync
Socket
客户端服务器框架完整代码(VS2010)
用
CA
sync
Socket
开发,可以省去线程管理的工作,用起来就一个字:爽! 本想不要资源分的,因为资源分对我来说并不紧张。但为了让您能够稍稍关注一下,就点了3分。 如果您觉得这个资源对您有帮助,请点一下赞。哦,...
CA
sync
Socket
实现聊天室
CA
sync
Socket
实现的聊天室,分为 服务端和客户端
用
CA
sync
Socket
编的简单MFC聊天程序
用
CA
sync
Socket
编的简单MFC聊天程序 基于TCP协议 可监听 可访问别的程序 局域网测试可用 互联网需映射
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章