Почему после out.writeObject(message); мы не пишем в сокет НОВУЮ пустую СТРОКУ,ведь при работе с сокетами мы должны в конце запроса писать пустую строку
public void send(Message message) throws IOException{
       synchronized (out) {
           out.writeObject(message);
           //write new Line????
           out.flush();
       }
   }
Полный код-------------------------------------------------------
package com.javarush.task.task30.task3008;

import java.io.Closeable;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.SocketAddress;

public class Connection implements Closeable {

    private final Socket socket;
    private final ObjectOutputStream out;
    private final ObjectInputStream in;

    public Connection(Socket socket) throws IOException {
        this.socket = socket;
        this.out = new ObjectOutputStream(socket.getOutputStream());
        this.in = new ObjectInputStream(socket.getInputStream());
    }

    public void send(Message message) throws IOException{
        synchronized (out) {
            out.writeObject(message);
            //wrire new line ???
            out.flush();
        }
    }

    public Message receive() throws IOException, ClassNotFoundException{
        synchronized (in) {
            return (Message) in.readObject();
        }
    }

    @Override
    public void close() throws IOException {
         out.close();
         in.close();
         socket.close();
    }

    public SocketAddress getRemoteSocketAddress(){
           return socket.getRemoteSocketAddress();
    }
}