package Ġcom . ba ul supp . ok url . network Ċ Ċ import Ġjava . net . Inet Address Ċ import Ġjava . net . Inet SocketAddress Ċ import Ġjava . net . NetworkInterface Ċ import Ġjava . net . Socket Ċ import Ġjava . net . Unknown Host Exception Ċ import Ġjavax . net . Socket Factory Ċ Ċ class ĠInterface Socket Factory ( private Ġval Ġlocal Address : ĠInet Address ) Ġ: ĠSocket Factory () Ġ{ ĊĠ Ġprivate Ġval Ġsystem Factory Ġ= ĠgetDefault () ĊĊĠ Ġoverride Ġfun Ġcreate Socket (): ĠSocket Ġ{ ĊĠĠĠ Ġval Ġs Ġ= Ġsystem Factory . create Socket () ĊĠĠĠ Ġs . bind ( Inet SocketAddress ( local Address , Ġ 0 )) ĊĠĠĠ Ġreturn Ġs ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Socket ( host : ĠString , Ġport : ĠInt ): ĠSocket Ġ{ ĊĠĠĠ Ġreturn Ġsystem Factory . create Socket ( host , Ġport , Ġlocal Address , Ġ 0 ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Socket ( address : ĠInet Address , Ġport : ĠInt ): ĠSocket Ġ{ ĊĠĠĠ Ġreturn Ġsystem Factory . create Socket ( address , Ġport , Ġlocal Address , Ġ 0 ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Socket ( ĊĠĠĠ Ġhost : ĠString , ĊĠĠĠ Ġport : ĠInt , ĊĠĠĠ Ġlocal Addr : ĠInet Address , ĊĠĠĠ Ġlocal Port : ĠInt ĊĠ Ġ): ĠSocket Ġ{ ĊĠĠĠ Ġreturn Ġsystem Factory . create Socket ( host , Ġport , Ġlocal Addr , Ġlocal Port ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Socket ( ĊĠĠĠ Ġaddress : ĠInet Address , ĊĠĠĠ Ġport : ĠInt , ĊĠĠĠ Ġlocal Addr : ĠInet Address , ĊĠĠĠ Ġlocal Port : ĠInt ĊĠ Ġ): ĠSocket Ġ{ ĊĠĠĠ Ġreturn Ġsystem Factory . create Socket ( address , Ġport , Ġlocal Addr , Ġlocal Port ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġfun Ġby Name ( ip Or Interface : ĠString ): ĠSocket Factory ? Ġ{ ĊĠĠĠĠĠ Ġval Ġlocal Address Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġexample Ġ 1 9 2 . 1 6 8 . 0 . 5 1 ĊĠĠĠĠĠĠĠ ĠInet Address . get ByName ( ip Or Interface ) ĊĠĠĠĠĠ Ġ} Ġcatch Ġ( u he : ĠUnknown Host Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġexample Ġen 0 ĊĠĠĠĠĠĠĠ Ġval Ġnetwork Interface Ġ= ĠNetwork Interface . get ByName ( ip Or Interface ) Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġnetwork Interface . inet Addresses . nextElement () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn ĠInterface Socket Factory ( local Address ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ