社区
网络编程
帖子详情
CAsyncSocket的问题
FingerStyle
2007-01-26 10:06:28
m_Server给m_Client, m_Client的 OnReceive有反映!
但是m_Client 给 m_Server发数据, 为什么 m_Server 的 OnReceive 没反映啊 ??
为什么??
...全文
331
8
打赏
收藏
CAsyncSocket的问题
m_Server给m_Client, m_Client的 OnReceive有反映! 但是m_Client 给 m_Server发数据, 为什么 m_Server 的 OnReceive 没反映啊 ?? 为什么??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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通信
使用
CA
sync
Socket
可实现异步UDP 可在局域网内的不同PC上运行
CA
SYNC
SOCKET
有讲解文档 适合初学者 通过消息调用来验证函数调用过程
CA
sync
Socket
类的应用实例
应用实例是一个简单的聊天室程序,采用C/S模型。
CA
sync
Socket
异步实现服务器与客户端
VC6.0/2013下
CA
sync
Socket
类异步实现服务器与客户端网络通信,Server支持多客户端并发 访问,支持大数据包传输。简单的现程安全队列ThreadSafeQueue;CServer
Socket
为服务端监听
Socket
类,CConnect
Socket
为连接至服务器的客户端
Socket
类;并发访问时只要封包大于1M以上数据包,性能基本可达到100M/S,完成普通的C/S服务完全没
问题
。本Demo基本上只需增加自己的数据处理就可直接应用于实际项目。
CA
sync
Socket
--UDP.rar
使用
CA
sync
Socket
进行无连接(UDP)通信-UDP
SOCKET
.
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章