socket编程中文传输乱码问题
「已注销」 2015-06-24 01:06:07 废话不说,上源码和图
//////mfc做的客户端send函数
void C测试Dlg::OnBnClickedButtonSend()
{
// TODO: 在此添加控件通知处理程序代码
if (flag)
{
CString str;
char cip[100];
Send.GetWindowTextW (str);
wcstombs(cip, str, str.GetLength ()*2);//将CString转换为char
int len = strlen(cip);
send(client, cip, len+1, 0);
list.AddString (str);
}
}
/////服务端代码[/code]
DWORD WINAPI f1(LPVOID lpParam)
{
int n=0;
SOCKET* clientsocket=(SOCKET*)lpParam; //这里需要强制转换,注意:指针类型的
char msg[100];
while(TRUE)
{
n=recv(*clientsocket, msg, 100, 0);
int len = strlen(msg);
msg[len] = '\0';
if (n==0||n==-1)
break;
cout<<msg<<endl;
}
closesocket(*clientsocket);
return 0;
}