// 创建面向连接的socket
sock =socket(PF_INET,SOCK_STREAM,0); 
// 使用TCP/IP协议
sockAddr.sin_family=AF_INET; 
// 指定连接的端口
sockAddr.sin_port=htons(Param.dwPort);
// 指定连接的IP地址
sockAddr.sin_addr.S_un.S_addr= htonl(Param.dwIp);
char * szIp = inet_ntoa(sockAddr.sin_addr);

CString str;
// 发起连接
if(connect(sock,(LPSOCKADDR)&sockAddr,sizeof(sockAddr)) == 0)
{
// 连接成功
str.Format("%s 端口 %d 连接成功"),szIp,Param.dwPort);
}
else
{
// 连接失败
str.Format(_TEXT("%s 端口 %d 连接成功"),szIp,Param.dwPort);
}
输出显示不正常  vs2008搜索了下,应该是char* 转 std::wstring  的问题
可以我还是不懂,那位大哥能说明了些~ ~

解决方案 »

  1.   

    // 连接成功 
    str.Format("%s 端口 %d 连接成功"),szIp,Param.dwPort); 
    // 连接失败 
    str.Format(_TEXT("%s 端口 %d 连接成功"),szIp,Param.dwPort);
    这么近的两句话,都要写的不一样?
    不知道程序是你自己写的?还是照书上抄的?
    按第二种格式写:str.Format(_TEXT("%s 端口 %d 连接成功"),szIp,Param.dwPort);
      

  2.   

    if(connect(sock,(LPSOCKADDR)&sockAddr,sizeof(sockAddr)) == 0) 

    // 连接成功 
    str.Format(_T("%s 端口 %d 连接成功"),szIp,Param.dwPort); 

    else 

    // 连接失败 
    str.Format(_T("%s 端口 %d 连接 fail"),szIp,Param.dwPort); 
      

  3.   

    str.Format(_TEXT("%s 端口 %d 连接成功"),szIp,Param.dwPort); 
    //用_TEXT宏,自动适应unicode和multibyte
      

  4.   

    回1楼
    自己仿照书上搞的原文str.Format("%s 端口 %d 连接成功"),szIp,Param.dwPort);这样的形式 
    我直接编译,回显正常
    ”192.168.1.1 端口 80 连接失败“
    可我,自己仿照画了个,却不行_T 和_TEXT都是我自己+上去的,可是还不行回显乱码
    “乱码 端口 80 连接失败”
    就是ip不显示出来 。。
      

  5.   

    看了好多遍的书,然后实践的
    基本都是按照步骤 复制,粘贴过来的应该是char * szIp 的问题吧,迷糊