简单的 CAsyncSocket 服务器和客户端程序。现在我正在使用 tera term vt 在本地进行测试。所以我在 TT 中输入了一个单词,它会发送到我的程序,但我收到的字符串只是一堆汉字。我正在使用 MFC 并以 Unicode 编译。现在有趣的是,当我遵守多字节字符集时,字符串接收得很好,所以我不确定这意味着什么,或者我可以改变什么来获得这个结果。
接收发生的代码
void CClientSock::OnReceive(int nErrorCode)
{
TCHAR buf[1000];
memset(buf,'\0',1000);
CString recStr;
int bytesRead;
bytesRead = Receive(buf,1000);
switch(bytesRead)
{
case 0:
Close();
break;
case SOCKET_ERROR:
if(GetLastError() != WSAEWOULDBLOCK)
{
AfxMessageBox(L"Error occured");
Close();
}
break;
default:
buf[bytesRead] = '\0';
CString temp(buf);
recStr = temp;
CT2A Astring(recStr);
CString nString(Astring);
AfxMessageBox(nString);
}
CAsyncSocket::OnReceive(nErrorCode);
}