MyServer.java

import java.io.*;
import java.net.*;

public class MyServer extends Thread
{

  private ServerSocket sSocket;

  public MyServer(int port)
  {
    try
    {
      sSocket = new ServerSocket(port);//socket() safhasi
      sSocket.setSoTimeout(900000);
    } catch(Exception e)
    {
    }
  }

  public void run()
  {
    while(true)
    {
      try
      {
        System.out.println("Server port bekliyor..." + sSocket.getLocalPort());
        Socket socket = sSocket.accept();
        System.out.println("Belirtilen adrese baglanti basarilidir=" + socket.getRemoteSocketAddress());

        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String inputLine;

        while((inputLine = in.readLine()) != null)
        {
          System.out.println("İstemciden alinan veri: " + inputLine);
          out.println(inputLine + " dediniz.");
        }

        out.close();
        in.close();

        //DataOutputStream write = new DataOutputStream(socket.getOutputStream());
        //write.writeUTF("Tesekkur ederiz "+socket.getRemoteSocketAddress()+" yine bekleriz\n");//client a veri gönderiliyor,write()
        //socket.close();//close() safhasi
      } catch(SocketTimeoutException s)
      {
        System.out.println("Socket timed out!");
        break;
      } catch(IOException e)
      {
        e.printStackTrace();
        break;
      }
    }
  }

  public static void main(String[] args)
  {
    Thread thread = new MyServer(1281);
    thread.start();
  }
}
Client sınıfını vermediğiniz için karşılaşabileceğiniz başka bir sorunun çıkması ihtimaline karşı, test ederken kullandığım sınıfı da inceleyebilirsiniz.

MyClient.java

import java.io.*;
import java.net.*;

public class MyClient
{
  public static void main(String[] args) throws IOException
  {
    String serverHostname = "127.0.0.1";

    Socket socket = null;
    PrintWriter out = null;
    BufferedReader in = null;

    socket = new Socket(serverHostname, 1281);
    out = new PrintWriter(socket.getOutputStream(), true);
    in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
    String userInput;

    System.out.print("Gonderilecek veri: ");

    while((userInput = stdIn.readLine()) != null)
    {
      out.println(userInput);
      System.out.println("Sunucunun cevabi: " + in.readLine());
      System.out.print("Gonderilecek veri: ");
    }

    out.close();
    in.close();
    stdIn.close();
    socket.close();
  }
}