要编写FTP客户端
已经connect了
可是发送命令后 接受数据时总是返回SOCKET_ERROR
CString cmd="PORT 10,111,21,113,10,1";
int n=send(m_server,cmd,sizeof(cmd),0);
iReturn = recv (m_server, szClientA, sizeof (szClientA), 0);if (iReturn == SOCKET_ERROR)
{
MessageBox (TEXT("SOCKET_ERROR"));
break;
}怎么办啊?

解决方案 »

  1.   

    CString cmd="PORT 10,111,21,113,10,1";  ???
    看一下send()的参数
      

  2.   

    send参数错误。取字串长度也不能用sizeof。
    建议:
    CString cmd="PORT 10,111,21,113,10,1";
    int n=send(m_server,(LPCTSTR)cmd,strlen(cmd),0);或者char cmd[] = "PORT 10,111,21,113,10,1";
    int n=send(m_server,cmd,strlen(cmd),0);
      

  3.   

    同意 halk(夜风)。也可以采用:
    CString cmd="PORT 10,111,21,113,10,1";
    int n=send(m_server,cmd.GetBuffer(0),cmd.GetLength(),0);
      

  4.   

    GetLastError();//WSAGetLastError();看下错误代码,就知道问题所在了,你代码这么短,无法看出问题