相关疑难解决方法(0)

sendto:资源暂时不可用(错误11)

我遇到了sendto的问题.

我有一个接收器接收带有recvfrom的UPD数据包,然后使用sendto回复发送者.

不幸的是,我得到了错误11(资源暂时不可用).我正在使用两个插座.

第一个数据包实际上是发送但后来没有发送:

sendto ::成功

错误:0.

sendto ::资源暂时不可用

错误:11.

sendto ::资源暂时不可用

...

这是我的代码的摘录:

    int sockfd, sockSend;

    if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
            perror("socket");

    if ((sockSend = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
            perror("socket");

    if (fcntl(sockfd, F_SETOWN, getpid()) < 0) {
            perror("fcntl"); 
    }
    if (fcntl(sockfd, F_SETFL, O_RDONLY | O_NONBLOCK | FASYNC) < 0) {
            perror("fcntl"); 
    } 

    if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))
                    < 0)
            perror("bind");
Run Code Online (Sandbox Code Playgroud)

在SIGIO处理程序中:

    len = sizeof(recv_addr);
    char buffer[payload];
    bzero(buffer, payload);
    n = recvfrom(sockfd, buffer, payload, …
Run Code Online (Sandbox Code Playgroud)

c sockets udp sendto

5
推荐指数
1
解决办法
5万
查看次数

标签 统计

c ×1

sendto ×1

sockets ×1

udp ×1