1. 程式人生 > >多個程序可以監聽同一個埠?

多個程序可以監聽同一個埠?

多個socket繫結同一個埠,叫做埠複用

下列程式碼可以使用socket繫結多次

//SO_REUSEADDR選項就是可以實現埠重繫結的  if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char*)&val,sizeof(val))!=0){  
  printf("error!setsockopt failed! ");return-1;}

埠複用真正的用處主要在伺服器程式設計:當伺服器需要重啟時,經常會碰到埠尚未完全關閉的情況,這時如果不設定埠複用,則無法完成繫結,因為埠還處於被別的套介面繫結的狀態之中。