CString strIP;
CString strPort;
GetDlgItem(IDC_EDIT_IP)->GetWindowText(strIP);
GetDlgItem(IDC_EDIT_PORT)->GetWindowText(strPort);
//初始化sock库
if ( 0 != WSAStartup( MAKEWORD( 2, 2),&m_wsaData ) )
{
return ;
}
if( LOBYTE( m_wsaData.wVersion ) !=2|| HIBYTE( m_wsaData.wVersion ) != 2) //返回值非0,则失败
{
WSACleanup();
return ;
}
const TCHAR *str = (const TCHAR *)strIP;
//建立sockets
m_socket = socket(AF_INET,SOCK_STREAM,0);
m_addrSrv.sin_addr.S_un.S_addr = inet_addr(str);
这两天被这个问题搞死了
留下来 供以后使用
将字符集改成多字节字符集
然后代码如上
法二:
还可以用这种方式
添加头文件
#include <comdef.h>
然后把上面哪一行改成这样:(const char*)_bstr_t(strIP);
send(m_socket, (const char*)_bstr_t(sendBuf), sendBuf.GetLength()*sizeof(TCHAR), 0);
在这个里面的sizeof(TCHAR)不可以去掉 否则会导致中文字符收不到
send(m_socket, (const char*)_bstr_t(sendBuf), sendBuf.GetLength()*sizeof(TCHAR), 0);