| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package server;
- import java.awt.Color;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.net.Socket;
- import server.network.NetworkMessage;
- public class User {
- String username;
- Color color;
- private Socket client;
- private ObjectInputStream in;
- private ObjectOutputStream out;
-
- public User(String username, Color color, Socket client, Server server){
- this.username = username;
- this.color = color;
- this.client = client;
-
- try {
- out = new ObjectOutputStream(client.getOutputStream());
- in = new ObjectInputStream(client.getInputStream());
- } catch (IOException e1) {
- e1.printStackTrace();
- }
-
- Thread receivethread = new Thread(new Runnable() {
- @Override
- public void run() {
- while(true){
- try {
- try {
- Object objectinput = in.readObject();
- if(objectinput instanceof NetworkMessage){
- NetworkMessage input = (NetworkMessage)objectinput;
- setUsername(input.getUsername());
- setColor(input.getC());
- server.addMessage(new Message(input.getMessage(), User.this));
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- } catch (IOException e) {
- System.out.println("User disconnected: " + username + "from: " + client.getLocalSocketAddress());
- server.deleteUser(User.this);
- try {
- client.close();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- return;
- }
- }
- }
- });
- receivethread.start();
- }
-
- public void sendMessage(Message message){
- NetworkMessage nwmessage = new NetworkMessage(message.getMessage(), message.getUser().getColor(), message.getUser().getUsername());
- try {
- out.writeObject(nwmessage);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public Color getColor() {
- return color;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public void setColor(Color color) {
- this.color = color;
- }
-
-
- }
|