sendto, 0表示成功了,但发送0个字节,你查看一下sendto里的各个参数,但哪个异常了,或者recvfrom收到后,发送固定的数据,如"abc"去发送,看能成功不

解决方案 »

  1.   

    不可以同时对一个socket进行收发操作
      

  2.   

    sendto 发送返回值是负值,看来错误更大呀
      

  3.   

    在接收端,接收线程都在while循环中,但是成功接收第一帧以后,就出错退出了,返回的Result为SOCKET_ERROR,发送端发送socket是成功的,但接收端就是收不到退出了,为什么呢
    FD_SET fdread;//建立集合
    while( recvexit==1 )
    {
    FD_ZERO(&fdread);//清空结合
    FD_SET(sock,&fdread);//将socket放进集合内
    timeval val;//设置超时时间
    val.tv_sec=60;
    val.tv_usec=0;
    int Result=select(0,&fdread,0,0,&val);//检查sokcet的可读性
    if(Result==SOCKET_ERROR)//错误则退出线程
    {
    break;
    }
    if(Result==0)//没数据到则马上返回。
    {
    continue;
    }int rec = recvfrom(sock, (char *)(&data), 2048, 0,(sockaddr *)&server,&len);//读取到来的数据报