ok i have a client server palindrom application it compiles correctly, but it wont send data to the server from the client. Here is the code:
Sever
Java Code:
import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.io.InputStream.*;

public class PalindromeServer
{
	public static void main(String[] args)
	{
		try{
				/*set the port and tell the server to start accepting sockets*/
				ServerSocket server = new ServerSocket(8000);
				Socket socket = server.accept();
				String s = " ";
				System.out.print("Server started at " + new Date() + '\n');

				/* set the In and outputs */
				BufferedReader input = new BufferedReader(socket.getInputStream());
				DataOutputStream output = new DataOutputStream(socket.getOutputStream());

				/*Read in the data from the client*/
				while(true){
					s = input.readChars();
					System.out.print("Date recieved from Client: " + s);
					System.out.print(s);
					output.writeBoolean(isPalindrome(s));
				}
			}
		catch(IOException ex){
			ex.printStackTrace();
		}
	}
	/** Return true if a string is a palindrome */
	public static boolean isPalindrome(String s)
	{
		// Create a new string by eliminating non-alphanumeric chars
		String s1 = filter(s);

		// Create a new string that is the reversal of s1
		String s2 = reverse(s1);

		// Compare if the reversal is the same as the original string
		return s2.equals(s1);
	}

	/** Create a new string by eliminating non-alphanumeric chars */
	public static String filter(String s)
	{
		// Create a string buffer
	    StringBuilder strBuf = new StringBuilder();

	 	// Examine each char in the string to skip alphanumeric char
		for (int i = 0; i < s.length(); i++)
		{
			if (Character.isLetterOrDigit(s.charAt(i)))
		  	{
		   		strBuf.append(s.charAt(i));
		   	}
		}

		// Return a new filtered string
		return strBuf.toString();
	}

	/** Create a new string by reversing a specified string */
	public static String reverse(String s)
	{
		StringBuilder strBuf = new StringBuilder(s);
		strBuf.reverse(); // Use the reverse method for StringBuilder object
	    return strBuf.toString();
	}
}
Client:
Java Code:
import javax.swing.JOptionPane;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PalindromeIgnoreNonAlphanumeric extends Thread {

	PalindromeIgnoreNonAlphanumeric(){
		// Prompt the user to enter a string
		String s = " ";

		s = JOptionPane.showInputDialog("Enter a string:");

		System.out.print(s);

		Runnable a = new clientrun(s);

		Thread thread1 = new Thread(a);

		thread1.start();
	}
	/** Main method */
	public static void main(String[] args) {
		new PalindromeIgnoreNonAlphanumeric();
	}

	class clientrun implements Runnable{
		private String s;

		public clientrun(String s){
			this.s = s;
	  	}
	  	public void run(){
			try{
				Socket socket = new Socket("localhost", 8000);

				DataInputStream in = new DataInputStream(socket.getInputStream());
				DataOutputStream out = new DataOutputStream(socket.getOutputStream());




				out.writeChars(s);
				out.flush();

				boolean fromserver = in.readBoolean();

				JOptionPane.showMessageDialog(null, "Your input" + s + "was sent to the server, and the server replied.  Is it a palindrome? " + fromserver);

			}
			catch(IOException ex){}

  		}
	}
}