FTP客户端请求失败

时间:2014-03-10 17:03:52

标签: c++ ftp

我正在尝试用c ++开发一个FTP协议。它接受来自客户端的请求类型(获取或放置),但是,服务器始终在两种情况下都接收put请求,并且不执行任何功能。

这里是比较请求类型的代码:

if(strcmp(argv[3],"get")==0)
    smsg.type=REQ_GET; //REQ_TIME;
else if (strcmp(argv[3],"put")==0)
{
    smsg.type=REQ_PUT; //REQ_SIZE;

}
else err_sys("Wrong request type\n");

这是将get请求发送到服务器时执行的部分:

if(smsg.type=REQ_GET)
{
    cout<<"Iam inside get"<<endl;
    cout<<smsg.type<<endl;
    //send out GET message
    memcpy(smsg.buffer,&req,sizeof(req)); //copy the request to the msg's buffer
    smsg.length=sizeof(req);
    fprintf(stdout,"Send a GET request to %s\n",argv[1]);
    if (msg_send(sock,&smsg) != sizeof(req))
        err_sys("Sending req packet error.,exit");

    //receive the response
    if(msg_recv(sock,&rmsg)!=rmsg.length)
        err_sys("recv response error,exit");

    //cast it to the response structure
    respp=(Resp *)rmsg.buffer;
    printf("Response:%s\n\n\n",respp->response);}

当显示“respp-&gt; response”时,它不会返回任何内容,并且文件的大小始终为零。

有没有人知道如何解决这个问题? 任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

- if(smsg.type=REQ_GET)
+ if(smsg.type==REQ_GET)

下次尝试在编译时使用-Wall,它可能会遇到这种错误