接收到的CSocket客户端-服务器字符串是中文字符
CSocket Client-Server String recieved is chinese looking characters
简单的CAsyncSocket服务端和客户端程序。现在我在本地测试用的是term vt,所以我在TT中输入一个单词,它被发送到我的程序,但我收到的字符串只是一串中文字符。我正在使用MFC和编译Unicode。现在有趣的是,当我遵守多字节字符集时,字符串被接收得很好,所以我不确定这意味着什么,或者我可以改变什么来得到那个结果。
发生接收的代码
void CClientSock::OnReceive(int nErrorCode)
{
TCHAR buf[1000];
memset(buf,' ',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] = ' ';
CString temp(buf);
recStr = temp;
CT2A Astring(recStr);
CString nString(Astring);
AfxMessageBox(nString);
}
CAsyncSocket::OnReceive(nErrorCode);
}
您从CAsyncSocket::Receive
收到的数据可能是多字节字符,因此只需将TCHAR buf[1000];
替换为char buf[1000];
您还为文本转换创建了太多冗余的cstring。可以简化为:
default:
buf[bytesRead] = ' ';
recStr = buf;
AfxMessageBox(recStr);
相关文章:
- 使用 ESP8266/8285 将字符串从 Web 服务器转换为字节数组
- 如何使用c++在winsock中从客户端向服务器发送大字符串
- C++ TCP 服务器比较字符串失败
- 如何在C 服务器中解码卷曲URL编码的字符串
- C 将NTP服务器返回的时间转换为字符串
- 服务器仅从客户端接收null字符串
- 为什么我的android客户端无法接收到来自winsock c++服务器的字符串消息
- 为什么BOOST创建的JSON字符串与我的服务器所需的不同
- 服务器在实现 POST 请求时响应字符串不完整
- 正在比较服务器端收到的字符串-C++
- 将带有 json 字符串的帖子发送到服务器
- Win2003 服务器中多字符串注册表字段中的垃圾字符
- 从服务器响应中解析 UTF8 字符串
- 将字符串发布到 Web 服务器,获取响应
- 如何将可变长度字符串从 RPC 服务器传递到客户端
- C 服务器和 Java 客户端.如何读取完整字符串
- 由于PROTOBUF服务器中的字符串数据类型变量和客户端通过cpp中recv端的套接字进行通信,因此正在获取segfau
- 客户端到服务器发送字符串消息c++
- gsoapweb服务服务器-接受字符串值的方法
- 如何通过套接字读取从PHP发送到Qt服务器应用程序的字符串