Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    problema con la chat lato server

    ecco il codice :
    codice:
    import java.applet.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.io.PrintStream;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.net.UnknownHostException;
    public class server extends JApplet {
        Socket connessione;
        ServerSocket richiesta;
        JPanel pannello = new JPanel();
        JTextField casella = new JTextField(40);
        JTextArea testo = new JTextArea(20, 30);
        JButton entra = new JButton("ENTRA IN CHAT");
        public server() {
            pannello.add(testo);
            pannello.add(casella);
            pannello.add(entra);
            add(pannello);
            testo.setBackground(Color.BLACK);
            testo.setForeground(Color.BLUE);
            entra.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    try {
                        richiesta = new ServerSocket(8888);
                        connessione = richiesta.accept();
                    } catch (IOException e2) {
                        e2.printStackTrace();
                    }
                }
            });
            casella.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    String input;
                    input = casella.getText();
                    testo.setText(input);
                    OutputStreamWriter osw;
                    PrintWriter invialo;
                    BufferedWriter alclient;
                    try {
                        osw = new OutputStreamWriter(connessione.getOutputStream());
                        alclient = new BufferedWriter(osw);
                        invialo = new PrintWriter(alclient);
                        invialo.println(input);
                    } catch (UnknownHostException e1) {
                        // TODO Auto-generated catch block
    			e1.printStackTrace();
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
    			e1.printStackTrace();
                    }
                }
            });
            int sec = 1;
            ActionListener action = (new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    BufferedReader dalclient;
                    InputStreamReader isr;
                    try {
                        isr = new InputStreamReader(connessione.getInputStream());
                        dalclient = new BufferedReader(isr);
                        String ricevi;
                        String messaggio = testo.getText();
                        System.out.println("timer attivo");
                        while (dalclient.readLine() != "") {
                            ricevi = dalclient.readLine();
                            testo.setText(messaggio + ricevi);
                        }
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
    			e1.printStackTrace();
                    }
                }
            });
            javax.swing.Timer t = new javax.swing.Timer(sec, action);
            t.start();
        }
        public static void main(String Args[]) {
            server esegui = new server();
        }
    }
    il pratica l'errore è in connessione=server.accept();

    perche quando clicco sul pulsante entra in chat il programma si blocca non capisco perche
    aiutatemi grazie 1000

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Diciamo che il tuo è un esperimento non riuscito
    Non ti funziona perché la accept è bloccante ma ci sono diversi altri errori.

    Dovresti partire da un esempio funzionante, un classico echo-server, testuale per carità, le swing ci pensi dopo.
    Comincia da qui: http://docs.oracle.com/javase/tutori...rking/TOC.html
    In particolare l'echo client e server li trovi in
    "Reading from and Writing to a Socket"
    "Writing the Server Side of a Socket "

    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.