unsigned short int sin_port; /* 端口号 */ struct in_addr sin_addr;/* IP地址 */ unsigned char sin_zero[8]; /* 填充0 以保持和struct sockaddr同样大小*/ }; 这个结构更方便使用。sin_zero用来将sockaddr_in结构填充到和struct sockaddr同样的长度,能用bzero()或memset()函数将其置为零。指向socka...
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的区别是,结...
1.struct sockaddr和struct sockaddr_in: 用来处理网络通信的地址. 2. sockaddr: #include <sys/socket.h>structsockaddr { sa_family_t sin_family;//地址族charsa_data[14];//14字节,包含套接字中的目标地址和端口信息}; sockaddr存在缺陷: sa_data把目标地址和端口信息混在一起了。而通常我们需要明确的ip...
struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。 下面是struct sockaddr_in中用到两个数据类型,具体...
sockaddr和sockaddr_in包含的数据都是一样的,但他们在使用上有区别: 程序员不应操作sockaddr,sockaddr是给操作系统用的 程序员应使用sockaddr_in来表示地址,sockaddr_in区分了地址和端口,使用更方便。 一般的用法为: 程序员把类型、ip地址、端口填充sockaddr_in结构体,然后强制转换成sockaddr,作为参数传递给系统调用函数...
在使用如 bind、connect、accept 等网络函数时,需要传递 struct sockaddr_in 的指针。例如,在 accept 函数中,服务器可以通过该函数获取到客户端的 struct sockaddr_in 信息: c int client_sock = accept(server_sock, (struct sockaddr *)&client_addr, &addrlen); ...
struct sockaddr_in是已经声明了的结构名,这里当作类型名来使用,如基础类型名int,double等等,addr被声明为struct sockaddr_in类型的变量,就像int a;中的a一样。
struct sockaddr与struct sockaddr_in struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ };sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是...
A. inet_aton(“202.113.16.10”,&adr_inet.sin_addr.s_addr); B. adr_inet.sin_addr=inet_aton(“202.113.16.10”); C. adr_inet.sin_addr.s_addr=inet_addr(“202.113.16.10”); D. adr_inet.sin_addr=inet_addr(“202.113.16.10”); ...
SOCKADDR_IN sockAddr; memset(&sockAddr,0,sizeof(sockAddr)); char lpszAscii[MAX_PATH]; memset(lpszAscii,0,MAX_PATH); //得到机器名 if(gethostname(lpszAscii,MAX_PATH)!=0) { DWORD nError=GetLastError(); return; } m_strComputerName.Format("%s",lpszAscii); //得到IP列表...