<prompt> Tekeleza programu rahisi ya gumzo kwa kutumia programu ya tundu ya Python. Programu inapaswa kusaidia wateja wengi kuunganisha kwa seva kuu, kutuma ujumbe kwa kila mmoja, na kuonyesha ujumbe uliopokewa kwa wakati halisi.PLINFORMAT  <response>: Hati ya seva server.pytundu la kuagizakuagiza threadingmwenyeji 127.0.0.1bandari 55555seva socket.socketsocket.AF_INET, socket.SOCK_STREAMserver.bindmwenyeji, bandariserver.sikilizawateja majina ya utani utangazaji wa def ujumbe: kwa mteja katika wateja: mteja.tumaujumbedef handlemteja: wakati Kweli: jaribu: ujumbe client.recv1024 tangaza ujumbe isipokuwa: index clients.indexmteja wateja.ondoamteja mteja.funga jina la utani lakabuindex lakabu.ondoajina la utani broadcastfjina la utani aliondoka kwenye gumzo!.encodeascii mapumzikodef kupokea : wakati Kweli: mteja, anwani server.kubali printfImeunganishwa na stranwani client.sendNICK.encodeascii jina la utani client.recv1024.decodeascii lakabu.appendjina la utani wateja.ongezamteja printfJina la utani la mteja ni jina la utani! broadcastfjina la utani alijiunga na gumzo!.encodeascii client.sendImeunganishwa kwenye seva!.encodeascii thread threading. Threadlengompini, argsmteja, thread.startprintSeva inasikiliza...kupokea Hati ya mteja client.pytundu la kuagizakuagiza threadingmwenyeji 127.0.0.1bandari 55555mteja socket.socketsocket.AF_INET, socket.SOCK_STREAMclient.connectmwenyeji, bandaridef kupokea : wakati Kweli: jaribu: message client.recv1024.decodeascii ikiwa ujumbe NICK: client.sendjina la utani.encodeascii kwingine: chapa ujumbe isipokuwa: printHitilafu ilitokea! mteja.funga mapumzikodef andika : wakati Kweli: message fjina la utani: input mteja.tumamessage.encodeasciijina la utani pembejeoIngiza jina lako la utani: receive_thread threading. Threadlengopokeareceive_thread.startwrite_thread threading. Threadlengoandikawrite_thread.start 