警告:正在传递‘的参数2;getsockname’;来自不兼容的指针类型
我想不出来。有谁能告诉我为什么会出现这个错误:警告:正在传递‘的参数2;getsockname’;来自不兼容的指针类型,c,tcp,C,Tcp,我想不出来。有谁能告诉我为什么会出现这个错误: 警告:从不兼容的指针类型传递'getsockname'的参数2 在以下代码中: #include <arpa/inet.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <sys/socket.h> int main() { int
警告:从不兼容的指针类型传递'getsockname'的参数2
在以下代码中:
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <sys/socket.h>
int main() {
int sd;
struct sockaddr_in my_addr;
bzero(&my_addr,sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
my_addr.sin_port = htons(0);
my_addr.sin_addr.s_addr = INADDR_ANY;
socklen_t my_addr_size = sizeof my_addr;
if((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
fprintf(stdout, "Cannot create socket for master socket.\n");
fprintf(stdout, "Terminating program\n\n");
exit(1);
}
if (bind(sd, (struct sockaddr *)&my_addr, sizeof(my_addr)) < 0) {
fprintf (stdout, "Binding failed for master socket\n\n");
perror("bind failed");
exit (1);
}
if (getsockname(sd, &my_addr, &my_addr_size) == -1) {
perror("getsockname() failed");
return -1;
}
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(){
国际标准差;
我的地址中的结构sockaddr\u;
bzero(&my_addr,sizeof(my_addr));
我的地址sin家庭=AFINET;
my_addr.sin_addr.s_addr=inet_addr(“127.0.0.1”);
my_addr.sin_port=htons(0);
my_addr.sin_addr.s_addr=INADDR\u ANY;
socklen_t my_addr_size=my_addr的大小;
if((sd=socket(AF\u INET,SOCK\u STREAM,0))<0){
fprintf(stdout,“无法为主套接字创建套接字。\n”);
fprintf(stdout,“终止程序”\n\n);
出口(1);
}
if(bind(sd,(struct sockaddr*)和my_addr,sizeof(my_addr))<0){
fprintf(stdout,“主套接字绑定失败\n\n”);
perror(“绑定失败”);
出口(1);
}
如果(getsockname(sd、我的地址和我的地址大小)=-1){
perror(“getsockname()失败”);
返回-1;
}
}
getsockname的第二个参数应该是struct sockaddr*
。您正在中传递一个struct sockaddr\u的地址,getsockname
的第二个参数应该是struct sockaddr*
。您正在
中传递结构sockaddr\u的地址谢谢!该参数只需要转换为struct sockaddr*
。谢谢!该参数只需要转换为struct sockaddr*
。