Socket

9 respostas
Veneno

Olá !
alguem poderia me explicar essas linhas por favor ...
oq elas fazem ....

isso eu tenho no Cliente

Socket cliente = new Socket("127.0.0.1", 4000);
BufferedReader entradaTeclado = new BufferedReader(new InputStreamReader(System.in));
            PrintWriter saida = new PrintWriter(cliente.getOutputStream(), true);
            BufferedReader entradaSocket = new BufferedReader(new InputStreamReader(cliente.getInputStream()));

e isso no Servidor

ServerSocket servidor = new ServerSocket(4000);            
            Socket cliente = servidor.accept();            
            BufferedReader entradaSocket = new BufferedReader(new InputStreamReader(cliente.getInputStream()));

vlw galera .. :D

9 Respostas

LPJava

po tenho um trabalho em socket para implementar em C

Veneno

o que ??

Veneno

Não entendi essa …rs

R

Rapaz pra não falar besteira, eu prefiro lhe enviar esse link, poderá entender um pouco o que acontece, rs.

http://www.guj.com.br/java.tutorial.artigo.126.1.guj

Veneno

po veio vlw …
mas, pra q falar assim com as pessoas ??
eu queria saber oq faziam as linhas …
pq eu tive aula disso ontem …
eu tenho um cliente e um servidor pronto
q soh o cliente manda msg pro servidor
eu queria entende-las pra tentar fazer com que o servidor
tambem mandasse msg pro cliente …
mas vlw …
espero um dia saber tudo com vc .,…

G

kra não tem essa parte aqui q vc cria o server?

ServerSocket servidor = new ServerSocket(4000); Socket cliente = servidor.accept();

pra vc ecsrever algo no buffer para q ele possa ser acessado por outros clients, vc deve instanciar uma variavel do tipo PrintWriter

assim, vou por codigo td

ServerSocket servidor = new ServerSocket(4000);            
Socket cliente = servidor.accept();

PrintWriter write = new PrintWriter(cliente.getOutputStream(), true); // o parametro true serve pra vc n precisar usar o comando flush pra enviar
write.println("Aqui vc coloca a mensagem que será armazenada no buffer");

então oque o servidor escrever no buffer, poderá ser acessador por varios clientes, como se fosse um chat, cliente manda pro servidor, e esse torna disponivel pros demais clientes

sera q deu pra entender?

qq coisa posta ae

R

po veio vlw …
mas, pra q falar assim com as pessoas ??
eu queria saber oq faziam as linhas …
pq eu tive aula disso ontem …
eu tenho um cliente e um servidor pronto
q soh o cliente manda msg pro servidor
eu queria entende-las pra tentar fazer com que o servidor
tambem mandasse msg pro cliente …
mas vlw …
espero um dia saber tudo com vc .,…

Oxe, não entendi o que você quis dizer com “pra q falar assim com as pessoas?”
O que eu falei d+?
Simplesmente, prefire passar o link para vc, pois eu não saberia explicar… por isso mesmo falei, antes de falar besteira, passarei o link.
Vai q eu tento te explicar, e não falo coisa com coisa…

Mas sinceramente, não entendi oq quis dizer.

Veneno

vixii desculpa aí rs …
eu pensei q vc tivesse flando pra eu nao falar besteira …shausha
foi mal msm … desculpa…

ble entendi rs… vou tentar fazer qqr coisa eu posto aqui …
vlw, eu peguei o tutorial ta explicando bem lah …

Veneno

Eai galera …
não to conseguindo fazer o servidor mandar msg pro cliente…
se alguem puder me ajudar vlw …

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

import java.io.IOException;

public class TelaCliente extends javax.swing.JFrame {
    Socket cliente;
    PrintWriter saida;
   
     public TelaCliente() {
         initComponents();
      
     
        try{
            cliente = new Socket("127.0.0.1",4000);
            saida = new PrintWriter(cliente.getOutputStream(), true); 
            
           
            
        }catch(Exception e){
            e.printStackTrace();
        }
       
   
     }
    public void controlaCliente(){
    try{
          BufferedReader entradaSocket = new BufferedReader(new InputStreamReader(cliente.getInputStream())); 
                         
            while(true) {
                //Socket
                String linhaSocket = entradaSocket.readLine();
                txt.append("Servidor: " + linhaSocket);     
         
              }
                   
          

        } catch (IOException e) {
            txt.append("Ocorreu um erro na conexão");
            e.printStackTrace();
          }
    }
   

    
private void EnviarActionPerformed(java.awt.event.ActionEvent evt) {                                       

            
       txt.append(Mensagem.getText());
        
       try {         
            saida.println(Mensagem.getText());


        } catch (Exception e) {
            System.out.println("Ocorreu um erro na conexão");
            e.printStackTrace();
        }
    }                                      

    
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaCliente().setVisible(true);
            }
        });
   
     
    
    }  
    
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton Enviar;
    private javax.swing.JTextField Mensagem;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea txt;
    // End of variables declaration                   
    
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
 *
 * @author  ra0400105
 */
public class TelaServidor extends javax.swing.JFrame {
    Socket servidor;
    PrintWriter saida;
    
    public TelaServidor() {
        initComponents();
   
      
    }
     
    private void Enviar2ActionPerformed(java.awt.event.ActionEvent evt) {                                     

            txt2.append(Mensagem2.getText());
        try{
            
       
            saida.println(Mensagem2.getText());
           

        } catch (Exception e) {
            System.out.println("Ocorreu um erro na conexão");
            e.printStackTrace();
        }
        
    }                                       
    
    public static void controlaServidor(){
      
      try {
            ServerSocket servidor = new ServerSocket(4000);
            System.out.println("Porta 4000 aberta!");
            Socket cliente = servidor.accept();
            System.out.println("Nova conexão com o cliente " + cliente.getInetAddress().getHostAddress());
            BufferedReader entradaSocket = new BufferedReader(new InputStreamReader(cliente.getInputStream()));   
            
                        
            while(true) {
                //Socket
                String linhaSocket = entradaSocket.readLine();
                if (linhaSocket.equals("fim")) {
                    txt2.append("Finalizando conexão");
                    break;
                }
                txt2.append("Cliente: " + linhaSocket);
            }
            entradaSocket.close();
            cliente.close();
            servidor.close();

        } catch (IOException e) {
            txt2.append("Ocorreu um erro na conexão");
            e.printStackTrace();
         }
    }
    
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaServidor().setVisible(true);
            }
        });
         controlaServidor();

    
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton Enviar2;
    private javax.swing.JTextField Mensagem2;
    private javax.swing.JScrollPane jScrollPane1;
    public static javax.swing.JTextArea txt2;
    // End of variables declaration                   
    
}
Criado 22 de setembro de 2006
Ultima resposta 2 de out. de 2006
Respostas 9
Participantes 4