我在用Socket进行通信时,如果客户端用char buf[]来表示发送的信息就没问题,可如果用CString的GetBuffer,则服务器端得到的信息就有问题,请问如何才能改正。谢谢。
Client端:
CSocket* pClientSocket = new CSocket();

if (!pClientSocket->Create() )
{
AfxMessageBox("Failed to create the CSocket.");
delete pClientSocket;
return;
}if (!pClientSocket->Connect("127.0.0.1", 5555) )
{
AfxMessageBox("Can't connect to the server.");
delete pClientSocket;
return;
}CString str = "Hello Socket.";
char* buf = str.GetBuffer(0);
//char buf[] = "Hello Socket."; //如果这样,就会得到正确的结果
if(pClientSocket->Send(buf, sizeof(buf), 0) )
AfxMessageBox("Send successful.");
pClientSocket->Close();
return;
Server端:
CSocket* pListenSocket = new CSocket(); if (!pListenSocket->Create(5555) )
{
AfxMessageBox("Failed to create the CSocket.");
delete pListenSocket;
return;
}

if (pListenSocket->Listen() )
{
CSocket* pClientSocket = new CSocket();
char buf[1024]; if (pListenSocket->Accept(*pClientSocket) )
{
pClientSocket->Receive(buf, sizeof(buf), 0);
AfxMessageBox(buf);
pClientSocket->Close();
}
else
{
delete pListenSocket;
delete pClientSocket;
}
} pListenSocket->Close();