應該是連接通了的,相關代碼如下,發送可以,但是接收沒法接收到。
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(""));
}
}*/
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/226708.html
標籤:網絡編程
