按钮“发送”的消息响应函数
if (CliSock.m_bConnected) {//如果连接上,那么执行发送操作
NeedSend=TRUE;
CliSock.m_nLength=MSG.GetWindowText(CliSock.m_szBuffer,4096*sizeof(wchar_t));//获取对话框中的信息
CliSock.AsyncSelect(FD_WRITE);//启动OnSend();
MSG.SetWindowTextW(L"");
}OnSend函数
// TODO: 在此添加专用代码和/或调用基类
//下面两行代码用来获取对话框指针
CTalkToolApp* pApp=(CTalkToolApp* )AfxGetApp();
CTalkToolDlg* pDlg=(CTalkToolDlg* )pApp->m_pMainWnd;
if(!pDlg->NeedSend) return;
//发送消息
Send(m_szBuffer,m_nLength,0);
CString str=m_szBuffer;
//显示已发送的消息
pDlg->MSGs.InsertString(pDlg->MSGs.GetCount (),L"已发送:"+str);
m_nLength=0;
memset(m_szBuffer,0,4096*sizeof(wchar_t));//继续提请一个“读”的网络事件,接收Server消息
AsyncSelect(FD_READ);
CAsyncSocket::OnSend(nErrorCode);Receive函数
// TODO: 在此添加专用代码和/或调用基类
m_nLength=Receive(m_szBuffer,4096*sizeof(wchar_t),0);
//下面两行代码用来获取对话框指针
CTalkToolApp* pApp=(CTalkToolApp* )AfxGetApp();
CTalkToolDlg* pDlg=(CTalkToolDlg* )pApp->m_pMainWnd;
pDlg->MSGs.InsertString(pDlg->MSGs.GetCount (),m_szBuffer);
//往列表框中插入接收的文本
CString str=m_szBuffer;
pDlg->MSGs.InsertString(pDlg->MSGs.GetCount (),L"已接收:"+str);
memset(m_szBuffer,0,4096*sizeof(wchar_t));
CAsyncSocket::OnReceive(nErrorCode);例如我发送sdf,接受到的是:sd
发送sdfdsfsdf,接受到的是:sdfds
总是会少掉一些,为什么??
if (CliSock.m_bConnected) {//如果连接上,那么执行发送操作
NeedSend=TRUE;
CliSock.m_nLength=MSG.GetWindowText(CliSock.m_szBuffer,4096*sizeof(wchar_t));//获取对话框中的信息
CliSock.AsyncSelect(FD_WRITE);//启动OnSend();
MSG.SetWindowTextW(L"");
}OnSend函数
// TODO: 在此添加专用代码和/或调用基类
//下面两行代码用来获取对话框指针
CTalkToolApp* pApp=(CTalkToolApp* )AfxGetApp();
CTalkToolDlg* pDlg=(CTalkToolDlg* )pApp->m_pMainWnd;
if(!pDlg->NeedSend) return;
//发送消息
Send(m_szBuffer,m_nLength,0);
CString str=m_szBuffer;
//显示已发送的消息
pDlg->MSGs.InsertString(pDlg->MSGs.GetCount (),L"已发送:"+str);
m_nLength=0;
memset(m_szBuffer,0,4096*sizeof(wchar_t));//继续提请一个“读”的网络事件,接收Server消息
AsyncSelect(FD_READ);
CAsyncSocket::OnSend(nErrorCode);Receive函数
// TODO: 在此添加专用代码和/或调用基类
m_nLength=Receive(m_szBuffer,4096*sizeof(wchar_t),0);
//下面两行代码用来获取对话框指针
CTalkToolApp* pApp=(CTalkToolApp* )AfxGetApp();
CTalkToolDlg* pDlg=(CTalkToolDlg* )pApp->m_pMainWnd;
pDlg->MSGs.InsertString(pDlg->MSGs.GetCount (),m_szBuffer);
//往列表框中插入接收的文本
CString str=m_szBuffer;
pDlg->MSGs.InsertString(pDlg->MSGs.GetCount (),L"已接收:"+str);
memset(m_szBuffer,0,4096*sizeof(wchar_t));
CAsyncSocket::OnReceive(nErrorCode);例如我发送sdf,接受到的是:sd
发送sdfdsfsdf,接受到的是:sdfds
总是会少掉一些,为什么??
解决方案 »
- 菜单无法弹出,报错
- 控件旋转 VC
- CMDIChildWnd::OnTimer(nIDEvent); //这句如果删除,有什么不同吗
- 如何应用CTreeCtrl,不创建对话框工程也不用CTreeView,重新写一个类实现树形控件
- 帮忙!有小数的金额处理问题?
- 在CEditView中使用“自动还行”
- 怎么做个个人发信服务器? 就是类似foxmail的特快专递那样的
- 显示静态文本的控件动态建立的代码是什么?.建立后我怎样为他赋值
- 请问哪里有2000年高级程序员考试的试题下在,急急急急急
- 关于asc码与unicode的转换?
- 子窗口为什么不重绘呢?
- 提个问题,欢迎大家一起来讨论: 有没有一种方法能彻底控制截屏功能的?
// TODO: 在此添加专用代码和/或调用基类
m_nLength=Receive(m_szBuffer,4096*sizeof(wchar_t),0);
设个断点跟下就知道了
调试下你的发送是多少字节,Send返回的是发送的字节数.Receive返回的是接收的字节数