社区
网络编程
帖子详情
CAsyncSocket的问题
FingerStyle
2007-01-26 10:06:28
m_Server给m_Client, m_Client的 OnReceive有反映!
但是m_Client 给 m_Server发数据, 为什么 m_Server 的 OnReceive 没反映啊 ??
为什么??
...全文
348
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
类的UDP通信
在Windows编程环境中,
CA
sync
Socket
类是MFC(Microsoft Foundation Classes)库提供的一个高级网络编程接口,用于处理TCP和UDP协议。本篇文章将深入探讨如何使用
CA
sync
Socket
类实现异步UDP通信,以及其在局域网内的...
CA
SYNC
SOCKET
4. **错误处理**:
CA
SYNC
SOCKET
通过GetLastError和GetErrorString函数提供错误信息,帮助开发者诊断和修复
问题
。GetLastError返回错误代码,GetErrorString将错误代码转换为可读的错误字符串。 5. **线程安全**:...
CA
sync
Socket
类的应用实例
在本文中,我们将深入探讨如何使用MFC中的
CA
sync
Socket
类来实现一个简单的聊天室程序。
CA
sync
Socket
类是Microsoft Foundation Class (MFC) 库为Windows
Socket
s API(Winsock)提供的一种封装,它使得在C++环境中...
CA
sync
Socket
异步实现服务器与客户端
VC6.0/2013下
CA
sync
Socket
类异步实现服务器与客户端网络通信,Server支持多客户端并发 访问,支持大数据包传输。简单的现程安全队列ThreadSafeQueue;CServer
Socket
为服务端监听
Socket
类,CConnect
Socket
为连接至...
CA
sync
Socket
--UDP.rar
`GetLastError()`函数可获取最后一次错误代码,以便诊断
问题
。完成通信后,调用`Close()`释放套接字资源,防止内存泄漏。 **8. 示例应用** 在"
CA
sync
Socket
UDP"这个示例中,可能包含了一个客户端和服务器程序。...
网络编程
18,358
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章