请教各位大佬们,recv接受不停止是什么情况,缓存区一直有东西?

接收端

while ((bytes = recv(hClntSOCK, buf_fileindex, 1024, 0)) > 0)//读取文件内容,每次一个1024字节
    {

        if (buf_fileindex == "本次图片发送完成")
        {
            cout << buf_fileindex << endl;
            break;
        }
        fwrite(buf_fileindex, 1, bytes, fp);//把buf里存的东西send给服务端
    }

发送端

for (vector<string>::iterator iter = file.begin(); iter != file.end();iter++)
    {
        cout <<"this is filename size" << sizeof((*iter).c_str()) << endl;
        /*int xiabiao = 0;
        string temp[] = { 0 };
        for (vector<string>::iterator iter = file.begin(); iter != file.end(); iter++)
        {
            for(i)
            
        }*/
        if (send(*s, (*iter).c_str(), (*iter).length() + 1, 0) == -1)
        {
            cout << "文件名发送失败" << endl;
            break;
        }
        else
        {
            cout << "文件名发送成功" << endl;

        }
        FILE* fp = fopen((*iter).c_str(), "rb");//用文件名创造二进制文件
        if (fp == NULL)
        {
            cout << "打开错误,请重新尝试" << endl;
            return 0;
        }
        else
        {
            cout << "文件打开成功,等待传输" << endl;
        }
        char buf[1024] = { 0 };
        int bytes;
        start = timeGetTime();
        while ((bytes = fread(buf, 1, 1024, fp)) > 0)//读取文件内容,每次一个1024字节
        {
            
            int n = send(*s, buf, 1024, 0);//把buf里存的东西send给服务端
            if (n == -1)
            {
                cout << "传输失败" << endl;
                break;
            }
            else
            {
                cout << "传输成功" << endl;
                cout << "正在传输中···" << endl;
            }
            //Sleep(1000);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值