Diferență între revizuiri ale paginii „OOP Lab Task 5”
De la WikiLabs
Jump to navigationJump to searchLinia 12: | Linia 12: | ||
* [[Serialization]] | * [[Serialization]] | ||
* [[Network Sockets]] | * [[Network Sockets]] | ||
− | |||
== Requirements == | == Requirements == | ||
− | + | # Implement a class called '''ClientPeer''' with the following characteristics: | |
− | * | + | #* The class constructor takes as arguments a String (the user/sender name) and a reference to a pre-initialized Socket. |
− | + | #* The class implements two methods: | |
− | * The | + | #** <code>void sendMessage(String message)</code> - creates a Message object and serializes it, utilising the available Socket. |
− | + | #** <code>void sendMessage(String message, String receiver)</code> - creates a PrivateMessage object and serializes it, utilising the available Socket. | |
− | + | # Implement a class called '''TextClient''', which is executable (has a main method), with the following characteristics: | |
− | * | + | #* The main method opens a Socket on the localhost (127.0.0.1) on port 9000 |
− | + | #* While the socket connection is active, read strings of characters from the keyboard (utilizing the Console class - see [https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#console-- System.console()]) and call the sendMessage methods specified above (Note: You may choose any formatting to identify a private message, but please describe this format in the homework submission e-mail; one example is <code>/w John Hello!</code> which identifies a private message to user John, with the content "Hello!"). | |
− | + | # Implement a class called '''ServerPeer''' with the following characteristics: | |
− | * | + | #* The class constructor takes as argument a reference to a pre-initialized Socket. |
− | + | #* While the socket connection is active, it deserializes objects of type Message and prints their formatted contents to the screen. | |
− | + | # Implement a class called '''Server''', which is executable (has a main method), with the following characteristics: | |
− | + | #* The main method must utilize an object of type '''ServerConfig''' to read a port number from a configuration file | |
− | + | #* Utilizing the identified port number, opens a ServerSocket and listens to connections, | |
− | + | #* Once a client is connected, creates a ServerPeer object, which utilizing the Socket obtained from the ServerSocket, reads objects from the stream, according to point 3 above. | |
− | + | # Modify the Message and PrivateMessage classes such that they are serializable. | |
− | |||
− | |||
− |
Versiunea de la data 18 noiembrie 2015 00:02
Required Tutorials
- The Object Oriented Paradigm; Classes and Objects
- Notions About the Java Language
- Writing and Executing a Java Program
- Java Syntax; A Program's Lexical Structure
- Coding Conventions
- Advanced Notions About Object Oriented Programming
- Java Application Programming Interface (API) (EN)
- Exception Handling
- Input/Output Streams
- Serialization
- Network Sockets
Requirements
- Implement a class called ClientPeer with the following characteristics:
- The class constructor takes as arguments a String (the user/sender name) and a reference to a pre-initialized Socket.
- The class implements two methods:
void sendMessage(String message)
- creates a Message object and serializes it, utilising the available Socket.void sendMessage(String message, String receiver)
- creates a PrivateMessage object and serializes it, utilising the available Socket.
- Implement a class called TextClient, which is executable (has a main method), with the following characteristics:
- The main method opens a Socket on the localhost (127.0.0.1) on port 9000
- While the socket connection is active, read strings of characters from the keyboard (utilizing the Console class - see System.console()) and call the sendMessage methods specified above (Note: You may choose any formatting to identify a private message, but please describe this format in the homework submission e-mail; one example is
/w John Hello!
which identifies a private message to user John, with the content "Hello!").
- Implement a class called ServerPeer with the following characteristics:
- The class constructor takes as argument a reference to a pre-initialized Socket.
- While the socket connection is active, it deserializes objects of type Message and prints their formatted contents to the screen.
- Implement a class called Server, which is executable (has a main method), with the following characteristics:
- The main method must utilize an object of type ServerConfig to read a port number from a configuration file
- Utilizing the identified port number, opens a ServerSocket and listens to connections,
- Once a client is connected, creates a ServerPeer object, which utilizing the Socket obtained from the ServerSocket, reads objects from the stream, according to point 3 above.
- Modify the Message and PrivateMessage classes such that they are serializable.