如何向特定客户机(JAVA)发送消息

如何向特定客户机(JAVA)发送消息,java,Java,我想向特定客户端发送消息: /w hey there. X:(priv)Y:hey there(what X sees in the console) 这是我的代码。当我像上面的示例一样键入时,在特定客户端的控制台和服务器上都没有显示任何内容。我不明白为什么,因为我还有一个在服务器类中连接的用户列表 import java.net.*; import java.io.*; public class ServerPeer extends Thread{ Soc

我想向特定客户端发送消息:

/w hey there.
X:(priv)Y:hey there(what X sees in the console)
这是我的代码。当我像上面的示例一样键入时,在特定客户端的控制台和服务器上都没有显示任何内容。我不明白为什么,因为我还有一个在服务器类中连接的用户列表

     import java.net.*;
     import java.io.*;

  public class ServerPeer extends Thread{
     Socket _socket;

   public ServerPeer(Socket _socket) {
    this._socket = _socket;
}
    public  void sendMessage(String _username,String _message) throws IOException {
    ObjectOutputStream _obj = new ObjectOutputStream(
            _socket.getOutputStream());
    _obj.writeObject(new Message(_username, _message));
    _obj.flush();

}

public synchronized void run()  {
try
    {   ObjectInputStream _ois = new ObjectInputStream(_socket.getInputStream());
    Message _message;
    while (_socket.isConnected()) {

               _message = (Message) _ois.readObject();
                    String divide=_message.getAll().substring(0,_message.getAll().indexOf(":"));
        for(ServerPeer sp:Server.listofpeers)
            {  
                 if(_message.getAll().startsWith("exit"))
                    {
                        _socket.close();Server.listofpeers.remove(sp);
                    }

              if(  !(_message instanceof PrivateMessage))
              {
                  sp.sendMessage(divide,_message.getAll());


                  System.out.println( _message.getAll());
              }  

              else

                   {
                       PrivateMessage privatem=(PrivateMessage)_message;
                       String receiver=privatem.getReceiver();
                       for(String s:Server.listofusers)
                       {
                           if(s.equals(receiver))
                           {
                               sp.sendMessage(divide,privatem.getAll());
                             System.out.println(privatem.getAll());
                               break;
                           }

                       }
                   }

            }    
        _ois = new ObjectInputStream(_socket.getInputStream());


        }

   }catch(IOException e){e.printStackTrace();}
    catch(ClassNotFoundException e){e.printStackTrace();}
       }
   }

你有没有收到任何错误,或者只是没有做你期望的事情?@Ascalonian没有收到任何错误,只是没有发送我怀疑的信息。我只是没有找到我错的地方。再次向上………你说“再次向上”是什么意思?更新了一些东西。仍然不起作用。