c++ - 使用 send(sock, wszBuffer, ...) 发送 TCHAR 缓冲区?

标签 c++ sockets send widestring tchar

我有一条宽字符 XML 消息,需要通过 C++ 中的 Win32 套接字发送。

TCHAR wszBuffer[1024];

我是否应该在发送前将宽字符缓冲区sprintf(szSendBuffer, "%S", wszBuffer)char 数组?

正确的发送方式是什么?

最佳答案

将 wszBuffer 直接传递给套接字函数,将其转换为 char*,长度 = sizeof(wszBuffer),或 1024 * sizeof(TCHAR)。在这种情况下,缓冲区将按原样发送。

如果要将此文本作为 ANSI 字符串发送,请使用任何字符串转换函数对其进行转换。 sprintf 可以,另一种方式是 W2A。但可能会丢失一些信息。

关于c++ - 使用 send(sock, wszBuffer, ...) 发送 TCHAR 缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555635/

相关文章:

c# - 将 C char[][] 数组编码到 C#

android - 如何在 do while 情况下使用 UI 线程处理 AsyncTask

C#:如何在 Socket.BeginReceive 回调之前终止套接字?

java - PHP/Java 套接字通信不工作

c++ - 在类或函数声明中间的宏

c++ - 将数字数据写成二进制还是写成二进制?

c - 使用 Unix 和 C/C++ 帮助阻止套接字

asynchronous - Winsock 异步多个 WSASend 与一个缓冲区

c++ - FD_READ : recv() returning two packets at once

c++ - 在 QT Creator 中动态更改 x 和 y 坐标