如何向特定客户机(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没有收到任何错误,只是没有发送我怀疑的信息。我只是没有找到我错的地方。再次向上………你说“再次向上”是什么意思?更新了一些东西。仍然不起作用。