import Ġjava . io . Object InputStream Ċ import Ġjava . net . Socket Ċ import Ġkotlin . concurrent . thread Ċ import Ġkotlin . system . exit Process Ċ Ċ class ĠMessage Receiver Ġ{ ĊĊĠĠĠ Ġfun Ġstart ( accept : ĠSocket ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject InputStream Ġ= ĠObject InputStream ( accept . getInputStream ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlast Message Received Text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceived Message Ġ= Ġobject InputStream . read Object () Ġas ĠMessage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Message Received Text Ġ= Ġreceived Message . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( String . format (" Message Ġfrom Ġ% s : Ġ% s ", Ġreceived Message . sender , Ġlast Message Received Text )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Error Ġreading Ġmessage Ġcontent .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( last Message Received Text Ġ!= Ġ" FI M " Ġ&& Ġ! accept . is Input Shutdown ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexit Process ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }