使用sendto发送CString类型数据

发送端:

int len = m_strSend.GetLength();

if (0 == len)

{

strState.Format(L"请填写需要发送的数据!");

GetDlgItem(IDC_STATIC_SEND_STATE)->SetWindowText(strState); //动态指定static text显示内容

return;

}

int byteLenSend = (len + 1)*sizeof(wchar_t);

USES_CONVERSION;//字符编码转换所需要的宏定义

int sendLen = SndData(W2A(m_strSend), byteLenSend);

if (byteLenSend == sendLen)

{

m_strReceived.SetWindowText(m_strSend);

GetDlgItem(IDC_EDIT_SEND)->SetWindowText(L"");

}

接收端:

char tempSocketReceive[MAXDATALENGTH] = "";

memset(tempSocketReceive, 0, MAXDATALENGTH);//char清空;

tempSocketReceive[MAXDATALENGTH - 1] = ‘\0‘;//防止数据末尾出现烫烫烫烫,加上之后仍然出现

int length = recvfrom(listen_socket, tempSocketReceive, MAXDATALENGTH, 0, (struct sockaddr *)&addr, &addr_len);

//判断为将多字节编码转化为宽字节编码所需要的内存空间

DWORD dwNum = MultiByteToWideChar(CP_ACP, 0, tempSocketReceive, -1, NULL, 0);

//在堆上分配内存,申请的内存必要要释放,不然早晚会内存泄露导致程序崩溃

wchar_t *pwText;

pwText = new wchar_t[dwNum];

//将对字节转换位宽字皆unicode,转换结果保存在堆内存上,记得delete

MultiByteToWideChar(CP_ACP, 0, tempSocketReceive, -1, pwText, dwNum);

//将收到的数据用CString表示,便于在MFC上显示和用CFile写入文件

CString rawData(pwText);//未经解析的原始串口数据数据

delete[]pwText;

时间: 2024-10-19 01:37:46

使用sendto发送CString类型数据的相关文章

Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据

发送字符串数据发送数据 string strId = "guest"; string strPassword = "123456"; string postData = "userid=" + strId; postData += ("&password=" + strPassword); byte[] data = Encoding.UTF8.GetBytes(postData); // Prepare web re

VS2013 中 CString类型转换为LPCSTR类型

HWND hWnd = ::FindWindow(NULL, L"XXXXXXX"); if (hWnd != NULL) { DWORD dwReadBytes; unsigned char *lpbuffer = (unsigned char *)malloc(10 * 1024 * 1024);; USES_CONVERSION; LPCSTR path = (LPCSTR)T2A(m_strDescPath); //m_strDescPath为一edit组件的成员变量 HFIL

C++ socket编程——3种方法发送不同类型的数据

socket传送数据,一般来讲是char型的,如何传送我们需要的数据类型勒? 1.结构体:2, Json序列化,3. 定义一个class. 1.结构体 相对来说简单点,看看网上的一个例子: 假设需要传送的结构体如下: struct person{ char name[20]; int age; float high; }; 可在发送数据的地方对数据进行处理,将其转换成一个字符串进行传送,而在接受方定义相同的结构体对这个字符串进行解析即可. 发送方代码如下: char temp[100];   

【整理】Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据

[整理]Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据 发送数据 //当前页面地址 string currentUrl = Request.Url.ToString(); string fileName = "复制文件"; string url = currentUrl.Substring(0, currentUrl.LastIndexOf('/')) + "/Default2.aspx?id=" + fileNa

socket 错误之:OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

出错的代码 #server端 import socket import struct sk=socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() conn,addr=sk.accept() str_len1=struct.unpack('i',conn.recv(4))[0] print(sk.recv(str_len1)) str_len2=struct.unpack('i',conn.recv(4))[0] print(sk.recv

发送和接收数据包

发送和接收数据包 原文:Game Networking系列,作者是Glenn Fiedler,专注于游戏网络编程相关工作多年. 概述 在之前的网游中的网络编程系列1:UDP vs. TCP中(推荐先看前面那篇),我们经过讨论得出:网游中传输数据应该使用UDP而不是TCP.我们选择UDP是为了不需要等待重发数据包,从而达到数据的实时性. 注意,因为接下来英文原文中所有的代码是C++写的,而我是个pythoner,我的计划是:通过理解文章,我用python实现UDP收发数据包.虚拟连接(原文后两章的

C++ socket 传输不同类型数据的四种方式

使用socket传输组织好的不同类型数据,有四种不同的方式(我知道的嘿嘿): a. 结构体 b. Json序列化 c. 类对象 d. protobuf 下面逐一整理一下,方便以后进行项目开发. 1. 使用结构体 假设需要传送的结构体如下: struct person { char name[20]; // 注意:CPU访问内存的时候,对访问地址有对齐的要求,一般为2的幂次方.所以,有的数据被填充,以满足对齐要求. int age; float high; }; 可在发送数据的地方对数据进行处理,

Android 手机卫士--解析json与消息机制发送不同类型消息

本文地址:http://www.cnblogs.com/wuyudong/p/5900800.html,转载请注明源地址. 1.解析json数据 解析json的代码很简单 JSONObject jsonObject = new JSONObject(json); //debug调试,解决问题 String versionName = jsonObject.getString("versionName"); mVersionDes = jsonObject.getString("

提交application/x-www-form-urlencoded类型数据

提交application/x-www-form-urlencoded类型数据 发送application/x-www-form-urlencoded接收通知 举例:发送通知以及接收通知 说明:此demo非常简化,使用tomcat服务器运行,本文说明: 包含文件 1.SendNotification.jsp:发送通知页面,表单提交数据的类型为multipart/x-www-form-urlencoded 2.RecvNotification.jsp:接收通知页面 3.页面简单使用了Bootstr