开发者

Building a simple chat client

开发者 https://www.devze.com 2023-03-19 03:46 出处:网络
Im building a simple chat client which is only supposed to be able to send and receive messages. Im using a server running on my own computer that sends back whatever message is sent to it, to all t

Im building a simple chat client which is only supposed to be able to send and receive messages.

Im using a server running on my own computer that sends back whatever message is sent to it, to all the user that's connected to the server.

When I send messages to the server by clicking my "send button", the server isn't sending back the message to me as it's supposed to. So either my output stream isn't working, or my listener for input messages isn't working but can't figure out what is wrong.

I might add, that i don't get any error messages/exceptions and connecting to the server works

public class Chatt extends JFrame implements Runnable{
    private JPanel topPanel = new JPanel();
    private JPanel bottomPanel = new JPanel();
    private JTextArea chattArea = new JTextArea();
    private JButton sendButton = new JButton("Skicka");
    private JLabel chattPerson = new JLabel("Du chattar med: ");
    private JTextField chattField = new JTextField(15);
    private Thread thread;
    private int port;
    private String ip;
    private DataInputStream in;
    private DataOutputStream out;
    private Socket s;


    public Chatt(String ip, int port){
        this.ip=ip;
        this.port=port;
        Konstruktor();
        }
    public Chatt(){
        ip="127.0.0.1";
        port=2000;
        Konstruktor();
        }
    public Chatt(String ip){
        this.ip=ip;
        port=2000;
        Konstruktor();
        }

    public void Konstruktor(){
        setLayout(new BorderLayout());

        chattArea.setSize(70, 50);  
        add(chattArea, BorderLayout.CENTER);

        bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.X_AXIS));
        bottomPanel.add(sendButton);
        bottomPanel.add(chattField);
        sendButton.addActionListener(new sendListener());
        add(bottomPanel, BorderLayout.SOUTH);

        topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS));
        topPanel.add(chattPerson);
        add(topPanel, BorderLayout.NORTH);

        try {
            //s = new Socket("atlas.dsv.su.se", 9494);
            s=new Socket(ip, port); 
            } 
        catch (UnknownHostException e) {
                System.out.println("Connection failed");
                } 
        catch (IOException e) {
                    }
        try{
        in= new DataInputStream(new BufferedInputStream(s.getInputStream()));
        out= new DataOutputStream(new BufferedOutputStream(s.getOutputStream()));
        }
        catch(UnknownHostException e){
                System.out.println("Host unknown");
            }
        catch(IOException e){

        }
        thread = new Thread(this);
        thread.start();

        setTitle("Connected to "+ip+" på port "+port);
        chattArea.setEditable(false);
        setSize(400, 500);
        setVisible(true);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    public void run() {

            while(true){
                System.out.println("tråden igång");
                try {
                    String temp = in.read开发者_开发问答UTF();
                    System.out.println(temp);
                    chattArea.append(temp);
                } catch (IOException e) {

                }

            }       
    }


    public class sendListener implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String chattString = chattField.getText();
                try {
                    out.writeUTF(chattString);
                    out.flush();
                    } 
                catch (IOException e1) {

                    }
                chattArea.append("Du: "+chattString+"\n");
                chattField.setText("");

            }

    }



    public static void main(String[] args){
        //new Chatt("127.0.0.1", 2000);
        //new Chatt();
        new Chatt("127.0.0.1");
    }

}


I can confirm that the chatserver wasn't working correctly. I did build my own server and sending/reciving messages works fine, so nothing wrong with my code.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号