Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 管理指向套接字文件描述符的指针_C_Sockets_Pointers_Udp - Fatal编程技术网

C 管理指向套接字文件描述符的指针

C 管理指向套接字文件描述符的指针,c,sockets,pointers,udp,C,Sockets,Pointers,Udp,我想知道是否有可能管理指向套接字udp文件描述符的指针,因为我必须使用send()将数据同时发送到两个不同的套接字 我有一个创建2个套接字的函数(socket()setsocket()bind()connect()…) 还有一个改变了套接字(如果一个条件为真,但我不写这部分) 能给我一个这样的指针吗 int *psock; psock=&change_socketfd(socket00); ris = send(*psock, datagram, sizeof(*

我想知道是否有可能管理指向套接字udp文件描述符的指针,因为我必须使用send()将数据同时发送到两个不同的套接字

我有一个创建2个套接字的函数(socket()setsocket()bind()connect()…) 还有一个改变了套接字(如果一个条件为真,但我不写这部分)

能给我一个这样的指针吗

    int *psock;
    psock=&change_socketfd(socket00);
    ris = send(*psock, datagram, sizeof(*datagram)+1 , 0);
我需要的是动态更改socketfd,但我的代码给出了分段错误,因此我不确定该方法是否正确或可行。
感谢您的建议,您这样做是行不通的,因为
&change\u socketfd(socket00)
给它一个返回值的地址,该值只暂时存在。我不明白这为什么不能满足你的要求:

int psock;
psock = change_socketfd(socket00);
ris = send(psock, datagram, sizeof(*datagram)+1 , 0);
但是,如果确实需要它作为指针,请尝试以下方法:

int *psock = malloc(sizeof(int*));
*psock = change_socketfd(socket00);
ris = send(*psock, datagram, sizeof(*datagram)+1 , 0);

...
//When you're finished with psock
free(psock);

这个代码不是C++吗?我从未见过“int*psock=newint;”这种类型的声明在ansi c中
int *psock = malloc(sizeof(int*));
*psock = change_socketfd(socket00);
ris = send(*psock, datagram, sizeof(*datagram)+1 , 0);

...
//When you're finished with psock
free(psock);