qq_35998583 2016-09-16 10:14 采纳率: 0%
浏览 808

小白求助...关于C语言socket传输失败的问题

刚刚C语言SOCKET入门,现在正在写一个简单的传输多文件的模块,但是发现服务器在send()的时候发生了问题,数据好像发送不出去(但是之前的send()都可以,就这个模块出来问题...),不知道是不是recv没有取数据导致了数据堆在发送栈上。
出问题的部分代码如下:
客户端:

     for(n=0;n<30;n++)
    {
        SOCKET file_sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
        while(connect(file_sock,(SOCKADDR *)&sockinfo,sizeof(SOCKADDR))!=0)
            continue;
        memcpy(path+big+2,all_province[n],strlen(all_province[n])+1);
        if((fp=fopen(path,"wb"))==NULL)
        {
            perror("无法正确创建省份文件..\n");
            closesocket(file_sock);
            WSACleanup();
            return -1;
        }
        while((lon=recv(file_sock,buf,250,0))>0)
            if(write(buf,1,lon,fp)<=0)
            {
                fclose(fp);
                closesocket(file_sock);
                break;
            }
        fclose(fp);
        closesocket(file_sock);
    }

服务器端:

         for(n=0;n<30;n++)
        {
            SOCKET file_sock=accept(servsock,NULL,NULL);
            memcpy(name+big+2,all_province[n],strlen(all_province[n])+1);
            if((fp=fopen(name,"rb"))==NULL)
            {
                closesocket(file_sock);
                perror("无法打开省份文件..\n");
                goto loop1;
            }
            fseek(fp,0,SEEK_SET);
            while((lon=fread(buf,1,250,fp))>0)
                if(send(file_sock,buf,lon,0)<=0)
                {
                    perror("链接发生错误..\n");
                    closesocket(file_sock);
                    fclose(fp);
                }
            shutdown(file_sock,SD_SEND);
            closesocket(file_sock);
            fclose(fp);
        }
  • 写回答

1条回答 默认 最新

  • qq_35998583 2016-09-16 10:15
    关注

    各位大大帮帮忙...已经倒腾一下午了...

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿