Nao envia dados para cliente socket

Ola pessoal,nao estou conseguindo fazer com que o servidor leia o arquivo em byte e passe para o cliente localhost, da erro o metodo read!
podem me ajudar?Vlw

SERVIDOR

// Servidor de Hora - N conexoes nao simultaneas
// este servidor espera pedidos de conexao na porta 13. Quando um pedido de conexao eh recebido,
// ele le a hora do relogio do sistema e envia esta informacao atraves da porta criada no momento do 
// estabelecimento da conexa
// Autor: Alcione de Paiva Oliveira
// Modificado por: Carlos de Castro Goulart

//importacao das classes net (pilha TCP/IP), io (entrada e saida) e Date (metodo para ler o horario corrente)
import java.net.*;
import java.io.*;
import java.util.Date;
import java.io.InputStream;
import java.io.FileInputStream; 

public class serverany {

// porta padrao do daytime - se for rodar este codigo em maquina servidora que ja tenha
// o servico daytime vai dar conflito de porta
  public final static int daytimePort = 13;

  public static void main(String[] args) {

// definicao das portas 
// de escuta dos pedidos de conexao
   ServerSocket portaEscuta;
//de comunicacao com o cliente
   Socket portaComCliente;

// buffer de saida
   PrintWriter saida;

   try {
// tenta instanciar o socket portaEscuta na porta de numero "daytimePort" = 13, neste exemplo.
     portaEscuta = new ServerSocket(daytimePort);
     try {
       System.out.println("Servidor no ar...");
       int i = 0;
       while (true) {
// espera por pedidos de conexao
        portaComCliente = portaEscuta.accept();
// associa um buffer de saida com a porta de comunicacao com o cliente
         saida = new PrintWriter(portaComCliente.getOutputStream(), true);
// executa o comando Date - que retorna hora e data - enviando para o socket portaComCliente
//         saida.println(new Date());
 byte[] buff;
String dName = "C:\\";
String nomeArquivo = "pdf.pdf"; 

       File file = new File(dName + nomeArquivo);
       FileInputStream in = new FileInputStream(file);
            Integer count;
         buff = new byte[2048];
         
            while ((count = in.read(buff)) != -1) {
                file.read(buff,0,count);     //<---------------------Acredito que aqui esta o erro ou um dos erros
            }

// encerra conexao
         portaComCliente.close();
         i++;
         System.out.println("Cliente "+i+" atendido...");
       }
     }
     catch (IOException e) {
       portaEscuta.close();
       System.err.println(e);
     }

   }  // end try
   catch (IOException e) {  
     System.err.println(e);
   }

  }

}

CLIENTE

// Cliente de Hora 
// este cliente faz pedidos de conexao com a porta 13 (daytime)
// para saber a hora do relogio do sistema remoto
// Autor: Alcione de Paiva Oliveira
// Modificado por: Carlos de Castro Goulart

//importacao das classes net (pilha TCP/IP) e io (entrada e saida) 
import java.net.*;
import java.io.*;

public class daytimeClient {

  public static void main(String[] args) {

// porta de comunicacao do cliente para receber a resposta
    Socket theSocket;

// nome da maquina remota (ou seu IP)
    String hostname;


//estrutura de dados - buffer de leitura
    BufferedReader ent = null;
	
// se nao for fornecido um nome como parametro, procura o servico na propria maquina (localhost)
    if (args.length > 0) {
      hostname = args[0];
    }
    else {
      hostname = "localhost";
    }

    try {
// estabelece conexao com porta 13 - porta padrao do servico daytime
      theSocket = new Socket(hostname, 13);
      
      //associa estrutura de dados com o socket
      ent = new BufferedReader(new InputStreamReader(theSocket.getInputStream()));
      

      // Le dados do socket
      String theTime = ent.readLine();
      System.out.println("o arquivo é" + hostname);
    }
    catch (UnknownHostException e) {
      System.err.println(e);
    }
    catch (IOException e) {
      System.err.println(e);
    }

  }

}

Se código me parece estranho.
Na linha 37 qual a função da variável i?

na linha 55 vc esta usando um file.read para que?seu codigo lendo um pedaço do arquivo pdf, mas vc precisa associar um dispositivo de saida ao socket.

Aonde vc associa o socket ao dispositivo de saida?

No cliente vc esta lendo uma string.

Comece a fazer um codigo mais simples, faça o seguinte primeiro um cliente que conecta a um servidor e esse servidor retorna uma msg…

Então e isso… flw

como eu associo o arquivo ao socket?
Flw
tem algum material aee pra me passar?

aqui no site na seção de artigos tem um interessante sobre sockets: http://www.guj.com.br/article.show.logic?id=126

flw

Blzz…deu certo…obrigado