ISTE-121编程 辅导、 写作java程序设计

” ISTE-121编程 辅导、 写作java程序设计ISTE-121 – Computational Problem Solving in the Information Domain II Page 1 of 4Peter Lutz, David Patric 2020-2021ISTE-121Lab06/HW05 – Remote File BrowsingNOTE:This is a combined Lab and HW. This means you will receive both Lab and HW credit for thisassignment. When done, Submit your work to both the Lab06 and HW05 Assignment folders. The labportion will be assessed as usual (10 points) and the homework portion will be assessed against thegradesheet at the end of this document.Objectives:Write a Multi Threaded, Client / Server GUI that will provide remote file browsing on the server, fromthe client. It will also allow file upload and download of text and binary files.NOTE: This is a (small) group projectYou may attack this problem in a group. In fact, it is suggested that you do exactly that. Choose apartner, for a group of size 2 and get started. EACH of you must submit a solution to the Lab06 / HW05Assignment folder.NOTE: You have 2 weeks to complete this labUnlike most of the other labs in this course, this does not need to be done by the next lab period. Infact, many of you might not be able to do so. Instead, you have until Week 10 to complete thisLab/HW.NOTE: You can run my solutionIn todays downloads you will find RemoteFileBrowser.jar and RemoteFileServer.jar. These are mysolutions to this problem. You Can run them to get an idea of how things might work in your solution.To run the RemoteFileBrowser:In Windows, type:runjava -jar RemoteFileBrowser.jarOn a Mac, type:sh runjava -jar RemoteFileBrowser.jarYou can do similarly for the RemoteFileServer.ISTE-121 – Computational Problem Solving in the Information Domain II Page 2 of 4Peter Lutz, David Patric 2020-2021These require either file runjava.bat (PC) or runjava (Mac). As stated earlier in the course, these need tobe either in your current directory, or better yet in your path. These are the files we discussed andwrote earlier. If you didnt retain it, instructions are available under Content Support How to Runwith JavaFX Outside of jGRASP. Follow the instructions.Part 1 – The GUIsAbove are my GUIs for the client (on the left) and the server (on the right). The client, calledRemoteFileBrowser.java, has a place to type in the servers IP or name and a connect button. Theconnect button becomes a disconnect button once connected. The other buttons are disabled exceptwhen connected. It also has a TextArea as a place to log events.The server, called RemoteFileServer.java, has a start button. The start button becomes a stop buttonwhen the server is started. If Stopped, the button becomes a start button again. The server also has alog (TextArea).NOTE: the title bar contains the authors name. Also, suggested sizes and positions are given. If youuse these, then when you run both of these programs, the client appears to the left of the server, forconvenience.NOTE: Setting the Position of the WindowTo do this, use stage.setX() and stage.setY() just before stage.show();You do not have to use this GUI design. It is only an example. You may use this design and you mustprovide the same functionality. Get your GUIs designed and implement them to the point that theyappear as you want and where you want on the screen.GUI HintsThe Logs (taLog) in both the client and the server behave as follows: As words are painted in the log, if the line becomes too long to fit, the line is wrapped on a wordboundary. See setWrapText() in the TextArea class in the JavaFX API.Part 2 – Protocol DesignYou must design a protocol for client/server communication. This means deciding what types ofstreams to use over the socket (you can only choose one). It also means deciding what messages aresent, and how they are formatted. Are they Strings, Integers, or what? Also, when a command is sentfrom the client to the server, what will the response be? What if there is an error? How will each partyknow how much data is being sent? If it is always a fixed size, great. What if the size can vary?Part 3 – Directory ManagementFor the List and Ch Dir buttons, the server will have to keep track of the current directory for theclient. This may be different for each client. I suggest you maintain a String variable (currentDir) whichis the full, absolute pathname of the current directory. Then, when the user asks to change directories,ISTE-121 – Computational Problem Solving in the Information Domain II Page 3 of 4Peter Lutz, David Patric 2020-2021append the relative name of the new directory to currentDir after a file separator. See the File class forhow to get the file separator in a system-independent manner.Also, if the user does a Ch Dir to the directory .. (one level up), we do not want the .. to be in thecurrentDir String. To take care of this, append the .. to the currentDir, after a file separator, thencreate a File object for this new directory and call the getCanonicalPath() method of the File class to getthe new value of CurrentDir. This will resolve the .. properly.Part 4 – File NamesWhen an upload or a download is chosen, you will need to know the filename for the data on both theclient and the server. The client can ask the user to type in the name of the remote file (the file on the server) using aTextInputDialog (see the API). On the clients machine, the client should present a FileChooser to allow the user to browse andselect a file on the clients machine. There are two cases here:1. When doing an upload – FileChooser will allow the user to choose the file to open andsend to the server.2. When doing a download – FileChooser will allow the user to choose the file to save thedownloaded data to.Look up FileChooser. Look at showOpenDialog() and showSaveDialog().On the server, be sure to always append the given remote file name to the currentDir, with a fileseparator in between, to get the name of the File on the server.Part 5 – Design, Devise, DiscussDiscuss / Design the functional Parts of the client and server code, so that they follow your protocol,and the client and server work well together.Part 6 – Time to code, if time allows.Your GUI should largely work (see Part 1). Now to add the button functionality. I suggest you start withList, then go on to Ch Dir, then do Upload, and then finally Download. Get each of thesebuttons to work before going on to the next button. This will make your code much more manageableto write (and grow).For example, once List is working, you can go on to Ch Dir. You can test whether Ch Dir works bycalling List after the Ch Dir is done and seeing if the files listed are correct.HINT: You may want to use the log() and alert() methods from Day20s lecture notes in your serverwhere threading is present.Submit your *.java file(s) to Both the Lab06 and HW05 Assignment folders when your code is workingproperly.ISTE-121 – Computational Problem Solving in the Information Domain II Page 4 of 4Peter Lutz, David Patric 2020-2021ISTE-121 HW05 GradesheetRemote File BrowsingCriteria PossiblepointsEarnedpointsInterfaceRemoteFileBrowser.javaClient GUI is implemented correctly 5One button is both Connect and Disconnect 7Buttons are enabled/disabled at appropriate times 4Upload prompts for remote file, FileChooser for local file 5Download prompts for remote file, FileChooser for local file 5FileChooser for upload is an open dialog 3FileChooser for download is a save dialog 3All key events are logged so you can watch the protocol work 8Program meets stated requirements 10Subtotal (client) 50RemoteFileServer.javaServer GUI is implemented correctly 5One button is both Start and Stop 7When Stopped, no new connections are possible 5When stopped, existing connections continue to work 10Ch Dir and List work properly 5All key events are logged so you can watch the protocol work 8Program meets stated requirements 10Subtotal (server) 50Total points earned: 100Deduction violations after above grading-Xlint messages. Need a clean compile -2Deduction for program not following naming conventionsDeduction for proper coding style not being used: indentation, use ofwhite space for ReadabilityDeduction for missing JavaDoc documentation: file methods -5Server contains inadequate in-code documentation -3Total Grade: 100Additional Comments:请加QQ:99515681 或邮箱:99515681@qq.com WX:codehelp

添加老师微信回复‘’官网 辅导‘’获取专业老师帮助,或点击联系老师1对1在线指导