Will do.
static PrintWriter out = null;
static BufferedReader in = null;
static Socket server = new Socket();
Declare your fields as private. No need to initialize them. They are null by default and the socket is initialized in connect()
I suggest to throw the Exceptions in connect() and read(), because the caller should know if something happened (but I see, that you wanted to make that "cleaner" too).
Imagine the caller does this (without any System.exit(), I will elaborate later):
net.connect(host, port)
net.disconnect()
Not knowing that the connection failed, the caller will try to disconnect and raise a NullPointerException, because server, in and out may be null at this time.
Which is the reason you should additional check for null in disconnect()
And please, don't use System.exit() at all. It doesn't make sense to use it here. Maybe the caller doesn't want to exit, but try something else instead.
Just let the program "naturally" shut down itself. Before I elaborate more, I just cite myself:
System.exit() is bad. It shuts down the JVM regardless what runs within. If there is still a task, it will be shut down too. That makes it hard to reuse your code, to embed it and to make unit tests.