Thank you Peter! You're suggestion appears to be working :) I would vote you up but I don't have sufficient reputation.
Sending the data:
// creates a client socket which connects to the first successor's server.
Socket clientSocket = new Socket(host, succ1_port);
// send the output_string to the first successor.
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeUTF(output_string);
outToServer.close();
clientSocket.close();
Server Side (receiving the data)
// accept connection
SocketChannel connectionSocket = tcpserver.accept(); // tcpserver is a ServerSocketChannel
DataInputStream inToServer = new DataInputStream(connectionSocket.socket().getInputStream());
String from_client_string = inToServer.readUTF();
The pattern matching stuff is the same as in the OP...except now it actually seems to work :)