void CcFileDlg::OnSending()
{
// TODO: Add your control notification handler code here
//CString s;
//char * msg;
//send_edit->GetWindowTextW(s);
//msg = (LPSTR)(LPCTSTR)s;
//CString2Char(s, msg);
CString s;
char msg[1024];
send_edit->GetWindowTextW(s);
CString2Char(s, msg);
if (send(sock, msg, strlen(msg), 0) == SOCKET_ERROR)
{
update(_T("发送失败"));
}
else if (s == "")
{
MessageBox(_T("请输入信息"));
}
else
{
s = msg;
update(_T("client:") + s);//消息上屏,清空输入,并重获焦点
send_edit->SetWindowText(_T(""));
send_edit->SetFocus();
}
/*CString s;
char * msg;
send_edit->GetWindowText(s);
msg = (char*)s.GetBuffer(s.GetLength());
if (send(sock, msg, strlen(msg), 0) == SOCKET_ERROR)
{
show_edit->ReplaceSel(_T("发送失败/r/n"));
}
else if (s == "")
{
MessageBox(_T("请输入信息"));
}
else
{
show_edit->ReplaceSel(_T("client:") + s + "/r/n");//消息上屏,清空输入,并重获焦点
send_edit->SetWindowText(_T(""));
send_edit->SetFocus();
}*/
}
8、最后添加字符格式转换函数
/*
* 函数名: CString2Char
* 参数1: CString str 待转换字符串
* 参数2: char ch[] 转换后将要储存的位置
* 将Unicode下的CString转换为char*
*/
void CString2Char(CString str, char ch[])
{
int i;
char *tmpch;
int wLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);//得到Char的长度
tmpch = new char[wLen + 1]; //分配变量的地址大小
WideCharToMultiByte(CP_ACP, 0, str, -1, tmpch, wLen, NULL, NULL); //将CString转换成char*
for (i = 0; tmpch[i] != ''; i++) ch[i] = tmpch[i];
ch[i] = '';
}
实验结果如图:
文章插图
文章插图
【如何基于TCP/IP协议进行MFC Socket网络通讯编程】
推荐阅读
- 如何用PyQt编写桌面程序,创建并打开播放列表?
- 如何经营管理自己的店铺 如何自己开网店并运营
- 淘宝商家如何注销 淘宝注销店铺在哪里注销
- 天猫店铺运营计划 天猫新店如何运营
- seo怎么做关键词排名 淘宝如何进行关键词优化
- 俄罗斯人是如何饮茶的,特殊患者如何饮茶更健康
- 如何分辨茶叶有无添加“香精”?
- 淘宝如何上传详情页 淘宝怎么发布详情页图片
- 专家教你如何素食抗癌
- 淘宝修改宝贝属性有影响吗 淘宝卖家如何编辑商品