当前位置:  技术问答>linux和unix

send时候出现Resource temporarily unavailable求救!!急!!

    来源: 互联网  发布时间:2017-01-14

    本文导语:  我的发送和接收都会有 Resource temporarily unavailable的错误 接收比较好办,不管他继续接收 但是发送采取这样的办法 还是有漏发的 ,我的发送代码 while(1)     {         snd_len = send(socket, data, data_len, 0);  ...

我的发送和接收都会有 Resource temporarily unavailable的错误 接收比较好办,不管他继续接收 但是发送采取这样的办法 还是有漏发的 ,我的发送代码

while(1)
    {
        snd_len = send(socket, data, data_len, 0);
        if(snd_len != data_len)
        {
            if(errno == EAGAIN || errno == EINTR)
            {
                FILE *fp = fopen("errorfile.txt", "a+");    
                if (fp == NULL) 
                {        
                    perror("Open file sendfile");    
                }
                fputs(strerror(errno),fp);
                fputs("n(", fp);
                fwrite(data, strlen(data), 1, fp);
                fputs(")n", fp);
                fclose(fp);
                
     snd_len = send(socket, data, data_len, 0);
                continue;

            }
            printf("send error! socket=%d snd_len=%d data_len=%d errno=%srn", socket, snd_len, data_len, strerror(errno));
            return 0;
        }
        else
        {
                break;
        }
    }

我的发送是用一个循环连续的的发  这肯定速度很快  发的少没事 发多了 比如1000条以上就会出现Resource temporarily unavailable

结果就会有漏发(漏发情况较少了 因为我重发了,但是还是有漏发)或者格式不对(这个是绝对的) 比如:正确的格式 {token=0,b,c,d}  token是发送的编号 第一条为0 第二条为1 .... 以此类推
结果服务器端接收的可能是{token=0,b,c,{token=0,b

大家可以看到我有把出错的信息和 出错的数据写入文件,写入文件的数据 正是漏发出错的数据  所以我就重发但是 好像之前的那条格式错误的数据已经发出去了  ,还有 比如 {token=800,b,c,d} 这条出现了Resource temporarily unavailable错误  这条会数据会写入在文件很多次  急速循环了很多次发送都没发出去最后或者发出去了或者没出去(发出去的可能性大些)
 
大家能不能帮忙看看 怎么解决这个问题, 最好能怎么不让那条格式错误的数据发送出去 还有不漏发数据 小弟菜鸟 请各位大师们赐教 能解决问题感激不尽   再解决不了公司要开除我了  哭~~~~~~

|

nSend = 0;
while (nSend 

    
 
 

您可能感兴趣的文章:

  • sock send问题,紧急求救
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类datagramsocketimpl的类成员方法: send定义及介绍
  • #define send _send 那么_send是在哪里实现的呢?minix源代码
  • java命名空间javax.sound.midi接口receiver的类成员方法: send定义及介绍
  • 面试题,socket进行send操作始终send不出去该怎么办?
  • java命名空间javax.sound.sampled类floatcontrol.type的类成员方法: aux_send定义及介绍
  • socket send()函数错误
  • java命名空间javax.sound.sampled类floatcontrol.type的类成员方法: reverb_send定义及介绍
  • 操作系统 iis7站长之家
  • java命名空间javax.security.sasl类sasl的类成员方法: raw_send_size定义及介绍
  • linux下socket的send函数阻塞问题?
  • java命名空间java.net类datagramsocket的类成员方法: send定义及介绍
  • 请教:socket编程中send和write的区别
  • java命名空间java.net类multicastsocket的类成员方法: send定义及介绍
  • linux 网络编程中 send()函数出错
  • java命名空间java.nio.channels类datagramchannel的类成员方法: send定义及介绍
  • 怎么的到send()出错信息
  • 关于socket的send(),recv()的问题.
  • 网线断开后,send函数返回值大于0,而不是-1
  • expect中为send语句上加变量的代码
  • [求助]请问socket编程中send()函数可以发送整形数据吗?
  • socket中的疑问:read,write和send,recv的区别


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3