繁体   English   中英

套接字的ArrayList无法将消息发送到客户端-Java

[英]ArrayList of Socket doesn't work to send message to Client - Java

我有一个服务器客户端程序,在其中使用JLabel ,我正在尝试与特定的客户端通信。 当我接受任何客户端时,我将其socket添加到ArrayList<Socket> ,然后分配socket = socketList.get(1); 到我的第一个JLabel以便套接字将包含连接到服务器的第一个客户端。 但是没有通信发生。 我无法确定问题所在。

//服务器

 private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) {                                     
            PrintWriter out;

            try {
                 socket = socketList.get(2);

            out = new PrintWriter(socket.getOutputStream(), true);
            out.println("pc2");
            } catch (IOException ex) {
            Logger.getLogger(third_frame.class.getName()).log(Level.SEVERE, null, ex);
            }
       }                                    

 public void postListen()
{
    new Thread(new Runnable()
    {
        public void run()
        {
            connect_clients();
        }

    }).start();
  }

  //checking clients connected
    void connect_clients()
    {
        try {
            ServerSocket listener = new ServerSocket(7700);
            jButton1.setText("Server Running!");
            jButton1.setEnabled(false);

            try {
                while (true) {

                    //socket = listener.accept();
                    socketList.add(listener.accept());
                    try {

                            clientIP = socket.getLocalAddress().getHostName();


                    }    
                    finally
                            {

                            }
                }
            }

               finally
                            {

                            }

            }
        catch(IOException ex)
        {
        }
    }

//客户

void connect_server()
    {
        try {
            // TODO code application logic here
            String serverAddress = JOptionPane.showInputDialog(
                    "Enter IP Address of a machine that is\n" +
                            "running the date service on port 9090:");
            s = new Socket(serverAddress, 7700);

            while(true){
            BufferedReader input =
            new BufferedReader(new InputStreamReader(s.getInputStream()));
            String answer = input.readLine();

            System.out.println(answer);
            }

            }


        catch (IOException ex) {
            Logger.getLogger(client_form.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

在我看来,您没有初始化套接字然后尝试调用它,但是如果没有所有代码和错误,很难知道出了什么问题。

//socket = listener.accept();
socketList.add(listener.accept());
try {
    clientIP = socket.getLocalAddress().getHostName();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM