Sockets: Como Trocar Strings Entre o Servidor e o Cliente

Eu estou lendo o tutorial do GUJ sobre sockets,mas não consegui entender onde eu coloco uma String do jtextarea para ser enviado ao servidor da classe cliente.
Essas classe manipuladoras de String são meus pontos fracos em java por isso eu agradeço qualquer ajuda.
Ai o codigo do servidor.

package Socket;

  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.net.ServerSocket;
  import java.net.Socket;
 
 public class Servidor {
 
	 
	 
     public static void main(String[] args) {
         
         //Declaro o ServerSocket
         ServerSocket serv=null; 
         
         //Declaro o Socket de comunicação
         Socket s= null;
         
         //Declaro o leitor para a entrada de dados
         BufferedReader entrada=null;
                 
         try{
             
             //Cria o ServerSocket na porta 7000 se estiver disponível
             serv = new ServerSocket(7000);
         
             //Aguarda uma conexão na porta especificada e cria retorna o socket que irá comunicar com o cliente
             s = serv.accept();
             
             //Cria um BufferedReader para o canal da stream de entrada de dados do socket s
             entrada = new BufferedReader(new InputStreamReader(s.getInputStream()));
             
             //Aguarda por algum dado e imprime a linha recebida quando recebe
             System.out.println(entrada.readLine());    
             
         //trata possíveis excessões de input/output. Note que as excessões são as mesmas utilizadas para as classes de java.io    
         }catch(IOException e){
         
             //Imprime uma notificação na saída padrão caso haja algo errado.
             System.out.println(e.getMessage()+"  Algum problema ocorreu para criar ou receber o socket.");
         
         }finally{
             
             try{
                 
                 //Encerro o socket de comunicação
                 s.close();
                 
                 //Encerro o ServerSocket
                 serv.close();
                 
             }catch(IOException e){
             }catch(NullPointerException e){
             }
         }
     
       }
 }

E a classe cliente:

package Socket;

import java.io.IOException;
 import java.io.PrintStream;
 import java.net.Socket;
 
 public class Cliente {
 
     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);
             
             //Cria a Stream de saida de dados
             ps = new PrintStream(s.getOutputStream());
             
             //Imprime uma linha para a stream de saída de dados
            ps.println("Estou enviando dados para o servidor");
             
         //Trata possíveis exceções
         }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){}
         
         }
 
     }
 }

Cara, para você enviar dados para o server, você precisa escrever no outputStream do socket que você conseguiu ao conectar com o server. Caso você já esteja fazendo isso corretamente, tente dar um flush() no outputStream que você está escrevendo.
Mais informações sobre o método flush em:

http://java.sun.com/javase/6/docs/api/java/io/OutputStream.html

[]'s.

Escrever no outputStream como eu faço isso?

Assim:

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

//Cria a Stream de saida de dados  
ps = new PrintStream(s.getOutputStream());  
 
//Imprime uma linha para a stream de saída de dados  
ps.println("Estou enviando dados para o servidor");

Eu descobri como que faz vc declara um ObjectOutStream e tudo que vc escreve com writeObject() aparece no ObjectInputStream do cliente e vice versa , para mandar um objeto eletemque se extender de seriazable (O nome da classe porvalmente tá errado).

http://www.guj.com.br/posts/list/68995.java

E ai pessoal, blz? 8)
Nesse exemplo os computadores estão em uma intranet? eu gostaria de trocar strings entre servidor e cliente, porem atraves da internet… tem como? :?:

Exemplo:
Um pc em SP é o servidor e outro pc em MG é o cliente, ai eles teriam q se comunicar através da internet… O processo para se criar uma conexão (um Socket) é o mesmo??? :stuck_out_tongue:

no exemplo acima o cliente sabe q o IP do server é 127.0.0.1, mas como eu faço para minha aplicação Java descobrir o IP na rede da máquina em q está rodando? eu quero q minha aplicação q esta no server descubra o IP de rede do server e o IP de conexão com a internet…

e como eu descubro quais são as portas disponiveis para conexão???

[quote=henriqueers]E ai pessoal, blz? 8)
Nesse exemplo os computadores estão em uma intranet? eu gostaria de trocar strings entre servidor e cliente, porem atraves da internet… tem como? :?:

Exemplo:
Um pc em SP é o servidor e outro pc em MG é o cliente, ai eles teriam q se comunicar através da internet… O processo para se criar uma conexão (um Socket) é o mesmo??? :stuck_out_tongue:

no exemplo acima o cliente sabe q o IP do server é 127.0.0.1, mas como eu faço para minha aplicação Java descobrir o IP na rede da máquina em q está rodando? eu quero q minha aplicação q esta no server descubra o IP de rede do server e o IP de conexão com a internet…

e como eu descubro quais são as portas disponiveis para conexão???[/quote]

Eu descobri como faço pra descobrir o IP na rede da máquina em q esta rodando a aplicação, porem, ainda nao sei como fazer para que eu possa conectar atraves da internet! :? Ninguem sabe fazer isso tbm??? :shock:

Ajuda ae galera! FLW!!!