Comunicação cliente servidor via Socket

Olá pessoal, estou fazendo uma aplicação que realiza a comunicação cliente/servidor, via Socket, além disso, quero fazer com que o cliente envie uma mensagem para o servidor solicitando do servidor o nome de uma determinada String que se encontra em um determinado Banco de Dados.

O banco de dados é composto da coluna cof_name, que representa o nome do café, além da coluna price que representa o preço do café. Existem outras colunas neste BD, porém as duas que quero ter acesso são essas. O código do programa está representado abaixo, nele eu já consigo fazer a comunicação entre os dois e enviar a String para o banco. Entretando, no console do cliente não aparece nenhum dado de confirmação, ou seja, uma entrada. Além disso eu não sei como faço para o cliente ficar enviando sempre a String e o servidor ficar respondendo, ou seja, o cliente solicita, o servidro entra no banco de dados, pega a String e , se existir, retorna para o cliente.

Já consigo fazer com que o servidor fique aguardando uma dado do cliente, além de fazer com que o servidor entre no banco de dados. Estou utilizando a IDE NetBeans 6.5 e o BD MySQL.
Percebam que já fiz algumas tentativas que estão comentadas, além disso, já configurei o banco de dados na plataforma corretament e antes de rodar o programa faço as conexões necessárias.
Outra coisa, as mensagens no console do cliente e do servidor são as seguintes:

Cliente:

init:
deps-jar:
compile-single:
run-single:
BUILD SUCCESSFUL (total time: 0 seconds)

Servidor:

init:
deps-jar:
compile-single:
run-single:
Aguardando uma conexão cliente
Dado recebido
Recebendo dados do cliente
BUILD STOPPED (total time: 17 seconds)

Abaixo as classes:

CLASSE SERVIDOR
/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package sockets;

/**
*

  • @author Raimundo
    /
    //import socketstestados.Servidor;
    import java.net.
    ;
    import java.io.*;
    // IMPORTS DO BANCO DE DADOS
    //import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    //import java.util.Scanner;

public class SocketsServer {

SocketsServer aux = new SocketsServer();

public static void main(String[] args) throws IOException {

    //CONEXÃO COM O BANCO DE DADOS
    try {
        //Class.forName("org.gjt.mm.mysql.Driver");
        Class.forName("com.mysql.jdbc.Driver");

        Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/sale", "root", "root");
        PreparedStatement comando2 = conexao.prepareStatement("SELECT cof_name, price FROM Coffee");

        try {

        //PreparedStatement comando3 = conexao.prepareStatement("UPDATE Coffee SET price=?");

        comando2.executeQuery();
        ResultSet resultado = comando2.getResultSet();
        conexao.setAutoCommit(false);

        Socket socket = null;

        ServerSocket serverSocket = new ServerSocket(7000);
        System.out.println("Aguardando uma conexão cliente");


        while (resultado.next()) {

            String name = resultado.getString("cof_name");
            String preco= resultado.getString("price");

            //System.out.println("Nome selecionado:" + name);

            socket = serverSocket.accept();

            //CRIA UM CANAL PARA RECEBER DADOS
            DataOutputStream oStream = new DataOutputStream(socket.getOutputStream());
            DataOutputStream oStream2 = new DataOutputStream(socket.getOutputStream());

            //CRIA UM CANAL PARA ENVIAR DADOS
            DataInputStream iStream = new DataInputStream(socket.getInputStream());

            System.err.println("Recebendo dados do cliente");

            //Aguardando recebimento dos dados
            String in = iStream.readUTF();

            System.out.println("Dado recebido" + " " + in);

/**
if (in.equals(name)){

            oStream2.writeUTF(name);

            System.out.println("Nome selecionado:" + name);

            }else
                if (in.equals(preco))
            oStream.writeUTF(preco);

*/
oStream2.writeUTF(name);
socket.close();

        }
        /**
        Scanner teclado = new Scanner(System.in);
        System.out.print("Escolha o produto e digite o novo preço:");
        String novopreco= teclado.nextLine();

        Statement comando3 = conexao.createStatement();
        comando3.executeUpdate("UPDATE Coffee SET price='"+novopreco+"' WHERE cof_name='America'");

        System.out.print("Preco atualizado:" +novopreco);
         */
        conexao.commit();
        conexao.setAutoCommit(true);
        comando2.close();
        //comando3.close();
        conexao.close();

    } catch (SQLException erro) {
        System.out.println("Erro no SQL: " + erro.getMessage());
    }
       //atualizaPrecoCafe(conexao);

        conexao.close();

    } catch (ClassNotFoundException erro) {
        System.out.println(erro.getMessage());
    } catch (SQLException e) {
        System.out.println("Erro no SQL: " + e.getMessage());
    }

}

}

CLASSE CLIENTE

package sockets;

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

/**
*

  • @author Raimundo
    */

// import java.io.BufferedReader;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
//import java.io.InputStreamReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
//import java.net.ServerSocket;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class Client_1 {

Client_1 obj=new Client_1();

public static void main(String[] args) {

     //Declaro o socket cliente
     Socket s = null;
     

     //Declaro a Stream de saida de dados
     //PrintStream ps = null;

     try{

         //Cria o socket com o recurso desejado na porta especificada
         s = new Socket("127.0.0.1",7000);

         BufferedReader inputStream = new BufferedReader(new InputStreamReader(s.getInputStream()));

         //PrintWriter outputStream = new PrintWriter(new OutputStreamWriter(s.getOutputStream()),true);


         //Cria a Stream de saida de dados
        // ps = new PrintStream(s.getOutputStream());

         DataInputStream iStream = new DataInputStream(s.getInputStream());
         DataOutputStream oStream = new DataOutputStream(s.getOutputStream());

         //Scanner teclado = new Scanner(System.in);

         
        // String test="Fim";  //Alterado
        // while (teclado.nextLine().equals(test)){  //Alterado

        //Scanner teclado = new Scanner(System.in);
       // System.out.print("Digite o nome do café:");
        //String novopreco= teclado.nextLine();

         String referenciaCafe="";

         oStream.writeUTF(referenciaCafe);
        //oStream.writeUTF(novopreco);

         //outputStream.println("Brasil");

         ///String recebe=iStream.readUTF();

        //System.out.println(inputStream.readLine());

         //System.out.println("Nome do café:" +" " +recebe);
          
          

     

         //Modificação

         //Imprime uma linha para a stream de saída de dados
         //ps.println("Estou enviando dados para o servidor");

          //inputStream.close();
          //outputStream.close();
         iStream.close();
         oStream.close();

                  }catch(IOException e){

         System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");
     }
     finally{
         try{
             //Encerra o socket cliente
             s.close();
         }catch(IOException e){}

     }
}}