вот пример рабочего клиент сервера
сервер
Код:

package nserver;
import java.io.*;
import java.net.Socket;
public class ServerOne extends Thread
{
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public ServerOne(Socket s) throws IOException
{
socket = s;
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket
.getOutputStream())), true);
start();
}
@Override
public void run()
{
try
{
while (true)
{
String str = in.readLine();
if (str.equals("END"))
break;
System.out.println("Echoing: " + str);
out.println(str);
}
System.out.println("closing...");
}
catch (IOException e)
{
System.err.println("IO Exception");
}
finally
{
try
{
socket.close();
}
catch (IOException e)
{
System.err.println("Socket not closed");
}
}
}
}
Код:

package nserver;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class MServer {
static final int PORT = 8888;
public static void main(String[] args) throws IOException
{
ServerSocket s = new ServerSocket(PORT);
System.out.println("Server Started");
try
{
while (true)
{
Socket socket = s.accept();
try
{
ServerOne serverOne = new ServerOne(socket);
}
catch (IOException e)
{
socket.close();
}
}
}
finally
{
s.close();
}
}
}
клиент
Код:

package nserver;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException
{
int PORT = 8888;
InetAddress addr = InetAddress.getByName(null);
System.out.println("addr = " + addr);
Socket socket = new Socket(addr, PORT);
try
{
System.out.println("socket = " + socket);
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
for (int i = 0; i < 10; i++)
{
out.println("HELLO " + i);
String str = in.readLine();
System.out.println(str);
}
out.println("BYE");
}
finally
{
System.out.println("closing...");
socket.close();
}
}
}