Fill in Order Details

  • Submit paper details for free using our simple order form

Make Payment Securely

  • Add funds to your account. There are no upfront payments. The writer will only be paid once you have approved your paper

Writing Process

  • The best qualified expert writer is assigned to work on your order
  • Your paper is written to standard and delivered as per your instructions

Download your paper

  • Download the completed paper from your online account or your email
  • You can request a plagiarism and quality report along with your paper

UDP Programming Project with java

This week, we have been looking at using Java UDP Sockets to build networked applications. The example provided with this week’s lecture demonstrates some of the basic ideas for setting up a networked application using UDP in Java. This week’s programming assignment is to design and build a journal application using UDP.

 

The journaling application is to be designed so that a client can access their journal entries from anywhere. They can store any text information in their journal. This journaling system should be set up to support the following operations:

 

  1. The client’s user name is used by the server to locate journal entries made by that client.
  2. When the client starts the journal application, he or she must identify themselves with their user name and indicate which journal entry they want to work on. Journal entries are identified by the month, day, and year. There is only one journal entry per month-day-year per client.
  3. A client can access the journal entry from any date. For example, a client may create a new journal entry in the morning. Later in the day, the client may continue working on the journal entry for that day. This means, the server retrieves the journal entry and sends it to the client where is it displayed in a text area. The client can change the entry or add to it. When finished, the client can once again save the entry, which sends the updated text to the server for storage.
  4. From the above operations, the journal server must support reading a journal entry for a specific client user name and month-day-year. It must also support saving a journal entry for a specific client user name and month-day-year.

 

The primary requirement for this lab is that you must use UDP for communications between the client and the server. All client journal entries must be saved to files. I am providing you with a Java class called: the JournalManager, which is designed to read and write journal entries to and from files. You should design your journal server to make use of this JournalManager class.

 

You should spend some time thinking about how to design this application, with particular focus on the application protocol you will need to develop to support this application. Refer to the Application Protocol Design document provided with this week’s material. What can a client request? What replies can the server generate? What errors could occur that a client needs to know about? What information needs to be sent from the client to the server; from the server to the client? What is the maximum message size your client and server will be able to exchange? What is the structure of each message exchanged? How are you going to implement a structured message with a Datagram Packet? (Hint: I would suggest looking at the StringTokenizer class that is designed to break a String into a set of substrings.) What about synchronization? When will the client wait and for how long? When will the server wait and for how long?

 

Remember, at this point, we are still basically working with a single threaded server, so while the server is servicing one client request, all other client requests are waiting.

 

For the first part of the lab, I want you to capture the design of your message exchange in a written protocol specification. Be very specific about the structure of messages that will be exchanged. Define what values you are going to use as part of your message exchange. Fully define the message exchange scenarios. For instance, if the client sends message A, the server can respond with message B or C depending on how the server handles A. Include any possible error responses that could come back from the server. The protocol write-up should take no more than two pages. Include an event diagram that illustrates the message exchanges and the synchronization between clients and the server.

 

Once you have defined your protocol, you can proceed to implementing your program. Demo your program to the professor, get a sign-off, and turn in screen shots of the client and server at work, and print-outs of the source code for both the client and server. Also turn in your written protocol specification.

 

 

import java.io.*;

import java.util.*;

 

publicclass JournalManager

{

    String baseDirectory;

 

    public JournalManager(String basedir)

    {

        baseDirectory = basedir;

 

        File dir = new File(basedir);

        if (dir.exists() == false)

        {

            dir.mkdir();

        }

    }

     

    public String readFile(String fromClient, String month, String day, String year)

    {

      File journalEntry;

      String result;

     

        journalEntry = new File(baseDirectory + “\” + fromClient + “\”

                + month + “.” + day + “.” + year);

        if (journalEntry.exists() == false)

        {

            return“Requested journal entry not found!”;

        }

        else

        {                       

            try

            {

                Scanner in = new Scanner(journalEntry);

                result = in.nextLine();

                while(in.hasNextLine())

                {

                  result += “n” + in.nextLine();

                }

                in.close();

            }

            catch(FileNotFoundException fnf)

            {

                result = “Requested journal entry not found”;

            }

        }

        return result;

    }

   

    public String writeFile(String fromClient, String month, String day, String year, String entry)

    {

      File journalEntry;

     

      File clientDir = new File(baseDirectory + “\” + fromClient);

 

        if (clientDir.exists() == false)

        {

            clientDir.mkdir();

        }

        journalEntry = new File(baseDirectory + “\” + fromClient + “\” +

                month + “.” + day + “.” + year);

        try

        {

            Formatter out = new Formatter(journalEntry);

            out.format(“%s”,entry);

            out.close();

            return“Message received and stored.”;

        }

        catch(FileNotFoundException fnf)

        {

            return“Server error occurred while trying to store message.”;

        }

    }

}

WHAT OUR CURRENT CUSTOMERS SAY

  • Google
  • Sitejabber
  • Trustpilot
Zahraa S
Zahraa S
Absolutely spot on. I have had the best experience with Elite Academic Research and all my work have scored highly. Thank you for your professionalism and using expert writers with vast and outstanding knowledge in their fields. I highly recommend any day and time.
Stuart L
Stuart L
Thanks for keeping me sane for getting everything out of the way, I’ve been stuck working more than full time and balancing the rest but I’m glad you’ve been ensuring my school work is taken care of. I'll recommend Elite Academic Research to anyone who seeks quality academic help, thank you so much!
Mindi D
Mindi D
Brilliant writers and awesome support team. You can tell by the depth of research and the quality of work delivered that the writers care deeply about delivering that perfect grade.
Samuel Y
Samuel Y
I really appreciate the work all your amazing writers do to ensure that my papers are always delivered on time and always of the highest quality. I was at a crossroads last semester and I almost dropped out of school because of the many issues that were bombarding but I am glad a friend referred me to you guys. You came up big for me and continue to do so. I just wish I knew about your services earlier.
Cindy L
Cindy L
You can't fault the paper quality and speed of delivery. I have been using these guys for the past 3 years and I not even once have they ever failed me. They deliver properly researched papers way ahead of time. Each time I think I have had the best their professional writers surprise me with even better quality work. Elite Academic Research is a true Gem among essay writing companies.
Got an A and plagiarism percent was less than 10%! Thanks!

ORDER NOW


Consider Your Assignments Done

“All my friends and I are getting help from eliteacademicresearch. It’s every college student’s best kept secret!”

Jermaine Byrant
BSN

“I was apprehensive at first. But I must say it was a great experience and well worth the price. I got an A!”

Nicole Johnson
Finance & Economics

Our Top Experts

See Why Our Clients Hire Us Again And Again!


OVER

10.3k
Reviews

RATING
4.89/5
Average

YEARS
13
Mastery

Success Guarantee

When you order form the best, some of your greatest problems as a student are solved!

Reliable

Professional

Affordable

Quick

Using this writing service is legal and is not prohibited by any law, university or college policies. Services of Elite Academic Research are provided for research and study purposes only with the intent to help students improve their writing and academic experience. We do not condone or encourage cheating, academic dishonesty, or any form of plagiarism. Our original, plagiarism-free, zero-AI expert samples should only be used as references. It is your responsibility to cite any outside sources appropriately. This service will be useful for students looking for quick, reliable, and efficient online class-help on a variety of topics.