C 管理指向套接字文件描述符的指针
我想知道是否有可能管理指向套接字udp文件描述符的指针,因为我必须使用send()将数据同时发送到两个不同的套接字 我有一个创建2个套接字的函数(socket()setsocket()bind()connect()…) 还有一个改变了套接字(如果一个条件为真,但我不写这部分) 能给我一个这样的指针吗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(*
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);