bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)); 二、inet_addr、 inet_aton、inet_ntoa inet_addr: 将网络地址转为网络二进制数字,返回的IP地址是网络序的。函数原型: unsigned long in inet_addr(const char *cp) inet_aton:将网络地址转为网络二进制数字,与inet_addr的区别是,结...
一、结构体 struct sockaddr_in, struct sockaddr, struct in_addr struct sockaddr_in, struct sockaddr,struct in_addr,这是网络编程中常用的结构体,每次都记不住它们各自的成员是啥,需要临时查,为方便以后的查看,在这里总结下。 struct sockaddr { unsigned short sa_family; /* 地址族, AF_xxx */ char s...
int sendto(int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen); 9 recvfrom() 头文件: #include <sys/types.h> #include <sys/socket.h> 函数原型: int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, i...
struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。 下面是struct sockaddr_in中用到两个数据类型,具体...
换句话说,这时sockaddr可以当作sockaddr_in看 Sockfd是调用socket函数返回的socket描述符,my_addr是个指向包含有本机IP地址及端口号等信息的sockaddr类型的指 针;addrlen常被设置为sizeof(struct sockaddr)。 structsockaddr结构类型是用来保存socket信息的:
struct sockaddr_in { short int sin_family; /*地址族 */ unsigned short int sin_port; /*端口号 */ struct in_addr sin_addr;/* IP地址 */ unsigned char sin_zero[8]; /*填充0 以保持和struct sockaddr同样大小*/ };这个结构更方便使用。sin_zero用来将sockaddr_in结构填充到和struct ...
struct sockaddr_in是已经声明了的结构名,这里当作类型名来使用,如基础类型名int,double等等,addr被声明为struct sockaddr_in类型的变量,就像int a;中的a一样。
在这里,accept 函数会填充 client_addr 结构体,使其包含客户端的地址信息。 5. 调试代码以确保 struct sockaddr_in 被正确获取和使用 在编写网络编程代码时,调试是非常重要的步骤。你可以通过打印日志或使用调试工具来检查 struct sockaddr_in 是否被正确获取和使用。例如,你可以打印出客户端的IP地址和端口号来验证...
struct sockaddr支持所有网域,如果用ipv4网域,需要强制转换成struct sockaddr_in! struct sockaddr_in { ... struct in_addr sin_addr; };
server_addr.sin_addr.s_addr = inet_addr("172.16.32.36");