結構體:
struct sockaddr_in{
short int sin_family;
unsigned short int sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};該結構體用於指定一個socket的一端【ip+port】
所以local.sin_addr.s_addr是ip地址。
//隨機選擇一個未被使用的端口號
my_addr.sin_port = 0;
//填入本機IP
my_addr.sin_addr = INADDR_ANY;
作爲服務器,你要綁定【bind】到本地的IP地址上進行監聽【listen】,但是你的機器上可能有多塊網卡,也就有多個IP地址,這時候你要選擇綁定在哪個IP上面,如果指定爲INADDR_ANY,那麼系統將綁定默認的網卡【即IP地址】。
作爲客戶端,你要連接【connect】到遠端的服務器,也是要指定遠端服務器的(ip, port)對。
當然,在這種情況下,不可能將IP地址指定爲INADDR_ANY,系統會瘋掉的。