MFC Socket中的Receive问题

来源:互联网 发布:知言善行的意思 编辑:程序博客网 时间:2024/06/11 19:31

刚刚接触Socket编程,对其中的了解对不是很多,所以遇到了不少麻烦,在Send一条消息后,Receive到的居然只有一个字符,而且当Send的内容是中文时,Receive到的全是乱码。。。后来发现原来是因为VS2010采用的是Unicode编码机制,而Receive接收的是char *类型的字符串,最后墨迹了半天,终于解决了问题!

char pBuf[1024] = {0};int nReceived = m_sConnectSocket.Receive(pBuf,1024);if(nReceived != SOCKET_ERROR){CString strReceived;strReceived.Format(_T("%s"),pBuf);m_listReceived.AddString(strReceived);UpdateData(FALSE);}

Receive代码片段,最后还有一个得修改的是Send中的发送长度:

nLen = m_strMsg.GetLength();nSent = m_sConnectSocket.Send((void *)m_strMsg.GetBuffer(0),nLen * 2);

字符问题真是各种揪心呀。。。

0 0