1

我有一个程序是客户端和服务器之间的聊天程序。我根据单击的按钮设置了套接字,如下所示:

    public void actionPerformed(ActionEvent e)
{
    Object o = e.getSource();

    if(o==startServer)
    {
        startServer.enable(false);
        try{
            listenSocket = new ServerSocket(port);
            Socket client = listenSocket.accept();
            InputStreamReader is = new InputStreamReader(client.getInputStream());
            BufferedReader buffRdr = new BufferedReader(is);
            PrintWriter printWrt = new PrintWriter(client.getOutputStream(),true);
            service = 1;
            sendButton.enable(true);
            disconnectButton.enable(true);
            sendText.enable(true);
            more = true;
        }catch(IOException ie){
            ie.printStackTrace();
        }
    }

    if(o==connectButton)
    {
        try{
            startServer.enable(false);
            connectButton.enable(false);
            Socket server = new Socket(host,port);
            InputStreamReader is = new InputStreamReader(server.getInputStream());
            BufferedReader buffRdr = new BufferedReader(is);
            PrintWriter printWrt = new PrintWriter(server.getOutputStream(),true);
            service = 2;
            sendButton.enable(true);
            disconnectButton.enable(true);
            sendText.enable(true);
            more = true;
        }catch(IOException ie){
            ie.printStackTrace();
        }
    }

我运行了该程序的两个实例,一切似乎都已连接,但我不确定程序如何知道从我设置的 sendText 文本框中获取文本。这是我设置运行的方式,但它永远不会到达 System.out.println("Service Changed") 或在程序等待服务从 0 更改后我附加“Listening to socket”的地方。

    while(more)
    {
        statusArea.append("Chat Running");
        String line;
        try{
            System.out.println(service);
            while(service==0 && more);
            System.out.println("Service Changed");
            if(buffRdr!=null)
            {
                statusArea.append("Listening to socket");
                while(more && (line=buffRdr.readLine())!=null)
                {
                    chatArea.append(line);
                }
            }       
        }catch(IOException e)
        {
        }
    }

对此的任何帮助将不胜感激,我在java编程方面相当新

4

0 回答 0