Published by admin on September 15, 2020 FileserverapplicationInthisassignmentyoudevelopafileserverapplicationbasedonsocketprogramming.Thecodehastwoparts:serversideandclientside.Theserverwhichisafileserverhasanumberoffilesavailableontheharddisk(localfolderofthecodeforinstance).Theclientcaneitherrequesttoreceive(download)oneofthosefilesoruploadanewfiletotheserver.ClientSide:Theclientsgraphicaluserinterface(GUI)allowstheusertoeitheruploadafiletothefile serverordownloadafilefromthefileserver.Theuserdecidesabouttheuploadordownloadfunctionalitybyprovidingthefilenameoraddressandpressingthedownloadorupload button.Upload:Intheuploadmodetheuserfirstchoosesthefiletobeuploadedfromthefilesonitslocalharddrive.Youcanimplementthis intwoways:1-YourGUIhasachoosefile button.Whenyouclickonitafilebrowserallowstheuserto browsethroughthelocalharddriveandchooseafile.2-Alternativelyyoucanhaveatextfieldwheretheuserinputsthefulladdressof thefileonthelocalharddrivesuchas:c:myfilestestfile.txtAfterchoosingthefileorenteringthefilesaddresstheuserclicksontheupload buttonandthefilewillbesenttotheserverandsavedontheserverslocaldrive.Download:Theuserwillprovidethefilenameinatextfieldandclickonthedownload button.Thefilenamecanbesomethinglike readme.txt.Arequestwiththefilenamewillbesenttotheserver.Ifthefileexistsontheserveritwillbetransferredtotheclientandsavedonthelocalharddriveof theclient.Ifthefiledoesnotexist ontheserveranerrormessage willbeinstead senttotheclient.TheclientGUIshouldsomehow(eitherthroughapopupwindoworinalabelonthesameGUI)showtheuseran appropriatemessagesayingthatThefilerequesteddoesnotexist.ServerSide:TheservercodedoesNOTneedtohaveaGUI.Itonlylistenstoaspecificportandwaitsfortheclientsmessage.Iftheclientsendsanuploadrequestitwillreceivethefileandsaveit alongwiththeotherfiles onthefileserver(alocaladdress).If itreceivesadownloadrequestitwillsendtherequestedfiletotheclientoranappropriatemessagetoinformtheclientthatthefiledoesnotexist.Detailsand options:The GUIfortheclientneedstohave: Achoosefile buttonorafile name textfieldin which theclientprovides […]