You are to implement an online auction as a client-server application (not Web-based). For simplicity's sake, the auction should involve just two items for which people may bid. At the start of the application, the server will expect to be told the final bidding time for each of the two items, using the 24-hour clock. Clients may then connect to the server at any time and enter the auction. The server should display an appropriate message whenever a new client makes connection.
The server will await bids from all connected clients and, as each new client makes connection, will transmit the item codes, brief textual descriptions and final bidding times for both auction items. Any newly-connected client will display the code, description and final bidding time for the current item, using a GUI.
The server will continue to accept bids from clients up to the final bidding time for the current item. Each bid from a client must be accompanied by the relevant item code, which should be user-selectable from a drop-down list (so that it is impossible to send an invalid code). As each final bidding time for an item is reached, an appropriate message should be displayed on the server.
Any valid bid (i.e., one that is for the current item, occurs before the bidding deadline for that item and is higher than the previous highest bid) should cause the server to send a 'Bid accepted' message to the appropriate client. Any bid received after the final bidding time for a given item should cause the server to transmit a 'Late bid' message to the client concerned, whilst any bid lower than the current highest bid should cause the server to send the client a 'Low bid' message. All client requests should be displayed on the server and all responses from the server should be displayed in the client window.
In order for the user to get an update on the current highest bid at any time, he/she can simply send the code for the item plus the word 'status' and the server will return the required figure. (If a drop-down list of item codes is used again, it should not be possible to send an invalid code.) If bidding for the item has finished when the user makes this query, the server should send back a value of -1 (though a meaningful message should be displayed on the client, of course). The client should display the current highest bid (as far as it knows it) at all times.
• To implement the timing mechanism, you will find it helpful to make use of the Calendar class. Details of this class are supplied at the end of this document and a demonstration program ([login to view URL]) has been provided for you. Both documents are available via Blackboard (within folder Reassessment of the NSD module).
The software from Phase 1 should be extended in the ways described below.
1. Create a Bidder class with the following data fields (plus constructor and any appropriate methods):
• bidder's name;
• bidder's IP address [* See Tip (i) at end of this section];
• a Boolean variable connected, indicating the user's current connection status (initially set to true).
2. Each new user who wishes to enter the auction must register his/her name with the server before being accepted into the auction. (Assume, for simplicity's sake, that all names will be unique.) Upon acceptance of the name, a Bidder object [See point 1 above] should be created and stored (probably in an ArrayList).
[See Tips (ii)-(iv) below for details of how the Bidder class is to be used.]
3. Whenever a new bidder joins the auction or an existing bidder disconnects, an updated list of current bidders should be displayed on the server.
MUST USE JAVAFX TOOL KIT NOT SWING
17 freelancer đang chào giá trung bình £278 cho công việc này
Hi! I'm interesting your project very well. I am a full time devloper. I am good at Java and I'm a good Algorithmer. I have good experience about JavaFx and backend and fronend development. Let's go ahead with me
HI, We are a team of java and python developers who ensure on time task completion with complete customer [login to view URL] find our portfolio below [login to view URL]