发送带有send的tchar缓冲区(袜子,wszbuffer,…)?
-
30-09-2019 - |
题
我有一条广泛的XML消息,需要在C ++中发送Win32插座。
TCHAR wszBuffer[1024];
我是不是该 sprintf(szSendBuffer, "%S", wszBuffer)
广泛的角色缓冲区 char
阵列发送之前?
发送此消息的正确方法是什么?
解决方案
将wszbuffer直接传递到套接字功能,将其施放为char *,长度为= sizeof(wszbuffer)或1024 * sizeof(tchar)。在这种情况下,缓冲区将按原样发送。
如果要以ANSI字符串发送此文本,请通过任何字符串转换函数进行转换。 Sprintf还可以,另一种方法是W2A。但是一些信息可能会丢失。
其他提示
由于您正在处理XML,因此您需要在UTF-8或其他XML友好的字符编码(并在XML的Prolog中指定编码)中对其进行编码,然后再通过插座发送。
采用 WideCharToMultiByte
将其转换为UTF-8(或任何其他 char
- 只要您在XML文件中声明)。
您可以简单地将其扔给char*。另一方面,您可以简单地将收到的缓冲区施加到WCHAR_T*。
不隶属于 StackOverflow