关于MFC实现两台电脑通信的发送与接收信息问题
应该是连接通了的,相关代码如下,发送可以,但是接收没法接收到。
void MySocket::OnReceive(int nErrorCode)
{
// TODO: 在此添加专用代码和/或调用基类
TCHAR TBuffer[4096]={0};
m_nLength=Receive(m_szBuffer,sizeof(m_szBuffer),0);
CMainFrame *pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
DNetWorkChess *pDlg=(DNetWorkChess *)pFrame->GetActiveWindow();
MultiByteToWideChar(0,0,m_szBuffer,-1,TBuffer,4069);
AfxMessageBox(TBuffer,MB_OK,0);
pDlg->m_LRMSG.InsertString(0,TBuffer);
memset(m_szBuffer,0,sizeof(m_szBuffer));
CAsyncSocket::OnReceive(nErrorCode);
}
红色标注,无法弹出对话框。
void MySocket::OnSend(int nErrorCode)
{
// TODO: 在此添加专用代码和/或调用基类
TCHAR TBuffer[4096]={0};
Send(m_szBuffer,m_nLength,0);
m_nLength=0;
MultiByteToWideChar(0,0,m_szBuffer,-1,TBuffer,4069);
AfxMessageBox(TBuffer,MB_OK,0);
memset(m_szBuffer,0,sizeof(m_szBuffer));
AsyncSelect(FD_READ);
CAsyncSocket::OnSend(nErrorCode);
}
发送是可以弹出对话框的。
发送按钮相关代码
void DNetWorkChess::OnBnClickedBsend()
{
// TODO: 在此添加控件通知处理程序代码
TCHAR TCHBuffer[4096];
//if(m_itype==1)
//{
if(m_clientSocket.m_bConnected)
{
m_EMessage.GetWindowTextW(TCHBuffer,4069);
WideCharToMultiByte(CP_ACP, 0,TCHBuffer, -1, m_clientSocket.m_szBuffer, 4069, NULL, NULL);
m_clientSocket.AsyncSelect(FD_WRITE);
m_EMessage.SetWindowText(_T(""));
}
//}
/*else if(m_itype==0)
{
if(m_servSocket.m_pSocket->m_bConnected)
{
m_EMessage.GetWindowTextW(TCHBuffer,4069);
WideCharToMultiByte(CP_ACP, 0,TCHBuffer, -1, m_servSocket.m_pSocket->m_szBuffer, 4069, NULL, NULL);
m_servSocket.m_pSocket->AsyncSelect(FD_WRITE);
m_EMessage.SetWindowText(_T(""));
}
}*/
}