struct sockaddr_in sin = { 0 };
sin.sin_addr.s_addr = -939153216; //192.168.5.200
unsigned char* addrstr = (unsigned char*)calloc(1, sizeof(unsigned long));
memcpy(addrstr, &sin.sin_addr, sizeof(unsigned long));
printf("%d %d %d %d\n", addrstr[0], addrstr[1], addrstr[2], addrstr[3]);
char addrarr[4];
addrarr[0] = 192;
addrarr[1] = 168;
addrarr[2] = 5;
addrarr[3] = 200;
long lip = 0;
memcpy(&lip, addrarr, sizeof(unsigned long));
sin.sin_addr.s_addr = lip;
printf("%d \n", lip);
此源码非彼源码,比源码略胜一筹。