简单的使用CSocket,客户端创建过程:
AfxSocketInit();//socket初始化
CSocket aSocket;
CString strIP;
CString strPort;
CString strText;
if(!aSocket.Create())//这才是创建socket
{
TCHAR szMsg[1024] = {0};
wsprintf(szMsg, _T("create faild: %d"), aSocket.GetLastError());
AfxMessageBox(szMsg);
return;
}
//这里才是使用socket连接远程服务器
int nPort = _ttoi(strPort);
BOOL s= aSocket.Connect(LPCTSTR(strIP) , nPort);
//连接成功,发送数据
if(s)
{
TCHAR szRecValue[1024] = {0};
//
DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,L"wwwww",-1,NULL,0,NULL,FALSE);
char *psText;
psText = new char[dwNum];
if(!psText)
{
delete []psText;
}
WideCharToMultiByte (CP_OEMCP,NULL,L"wwwww",-1,psText,dwNum,NULL,FALSE);
//
aSocket.Send(psText, dwNum);
delete []psText;
aSocket.Receive((void *)szRecValue, 1024);
AfxMessageBox(szRecValue);
}
else
{
TCHAR szMsg[1024] = {0};
wsprintf(szMsg, _T("create faild: %d"), aSocket.GetLastError());
AfxMessageBox(szMsg);
}
//关闭socket
aSocket.Close();
相互转换很简单:
LPCTSTR -> CString
CString str(LPCTSTR);
Cstring -> LPCTSTR
LPCTSTR(CString)
LPCWSTR与CString转换
USES_CONVERSION;
A2CW((LPCSTR)data)
LPTSTR = (LPTSTR)(LPCTSTR)CString;
AfxSocketInit();//socket初始化
CSocket aSocket;
CString strIP;
CString strPort;
CString strText;
if(!aSocket.Create())//这才是创建socket
{
TCHAR szMsg[1024] = {0};
wsprintf(szMsg, _T("create faild: %d"), aSocket.GetLastError());
AfxMessageBox(szMsg);
return;
}
//这里才是使用socket连接远程服务器
int nPort = _ttoi(strPort);
BOOL s= aSocket.Connect(LPCTSTR(strIP) , nPort);
//连接成功,发送数据
if(s)
{
TCHAR szRecValue[1024] = {0};
//
DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,L"wwwww",-1,NULL,0,NULL,FALSE);
char *psText;
psText = new char[dwNum];
if(!psText)
{
delete []psText;
}
WideCharToMultiByte (CP_OEMCP,NULL,L"wwwww",-1,psText,dwNum,NULL,FALSE);
//
aSocket.Send(psText, dwNum);
delete []psText;
aSocket.Receive((void *)szRecValue, 1024);
AfxMessageBox(szRecValue);
}
else
{
TCHAR szMsg[1024] = {0};
wsprintf(szMsg, _T("create faild: %d"), aSocket.GetLastError());
AfxMessageBox(szMsg);
}
//关闭socket
aSocket.Close();
相互转换很简单:
LPCTSTR -> CString
CString str(LPCTSTR);
Cstring -> LPCTSTR
LPCTSTR(CString)
LPCWSTR与CString转换
USES_CONVERSION;
A2CW((LPCSTR)data)
LPTSTR = (LPTSTR)(LPCTSTR)CString;