服务器未显示来自客户端的消息(JAVA)

服务器未显示来自客户端的消息(JAVA),java,sockets,server,Java,Sockets,Server,我要传达一个信息: newbie:hi 文本显示在服务器控制台=>服务器接收到它,但当我回显时,为了将相同的消息打印到我的textclient控制台,它不会显示这是我的回显代码,下面您还可以看到来自textclient的代码:(我做错了什么?它通常应该显示我从textclient发送的消息)方法getAll()返回一个包含消息和发件人的字符串 public void serverEcho() { try { ObjectI

我要传达一个信息:

            newbie:hi
文本显示在服务器控制台=>服务器接收到它,但当我回显时,为了将相同的消息打印到我的textclient控制台,它不会显示这是我的回显代码,下面您还可以看到来自textclient的代码:(我做错了什么?它通常应该显示我从textclient发送的消息)方法getAll()返回一个包含消息和发件人的字符串

    public void serverEcho() {
        try {
            ObjectInputStream objectin = new ObjectInputStream(_Socket
                    .getInputStream());
            Message newmess = (Message) objectin.readObject();
            System.out.println(newmess.getAll());
        } catch (IOException e) {e.printStackTrace();
        } catch (ClassNotFoundException e) {e.printStackTrace();
        }
    }
这是TextClient:

import java.io.*;
import java.net.*;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;

public class TextClient {
    public TextClient() {
    }

    public static void main(String[] args) throws IOException,
            UnknownHostException, ConnectException, InterruptedException {

        Socket _socket = new Socket("localhost", 9000);
        System.out.println("Please enter your desired username:");
        Scanner _new = new Scanner(System.in);
        String _inputname = _new.nextLine();
        System.out.println("Success.You can now type your messages!");
        ClientPeer _clientpeer = new ClientPeer(_inputname, _socket);
        Scanner _scan = new Scanner(System.in);
        String _input = _scan.nextLine();

        while (true) {

            if (!_input.equals("exit")) {
                if (_input.startsWith("/w"))
                    _clientpeer.sendMessage(_input, "username");
                else {
                    _clientpeer.sendMessage(_input);
                    _clientpeer.serverEcho();
                }

            } else
                break;

            _input = _scan.nextLine();
        }
    }
}
客户端对等类:

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

  public class ClientPeer{

String _username;
static Socket _Socket;

public ClientPeer(String _username, Socket _Socket)

{
    this._username = _username;
    this._Socket = _Socket;
}

public void sendMessage(String _message) throws IOException {
    ObjectOutputStream _obj = new ObjectOutputStream(
            _Socket.getOutputStream());
    _obj.writeObject(new Message(_username, _message));
    _obj.flush();

}

public void sendMessage(String _message, String _receiver)
        throws IOException {
    ObjectOutputStream _obj = new ObjectOutputStream(
            _Socket.getOutputStream());
    _obj.writeObject(new PrivateMessage(_username, _message, _receiver));
    _obj.flush();
}
    public static void serverEcho()
    {
       try{ ObjectInputStream objectin=new ObjectInputStream(_Socket.getInputStream());
        Message newmess=(Message)objectin.readObject();
        System.out.println(newmess.getAll());

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

  }
服务器对等类:

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

  public class ServerPeer {
   Socket _socket;

  public ServerPeer(Socket _socket) {
    this._socket = _socket;
  }

  public void methodCall() throws IOException, UnknownHostException,
        ClassNotFoundException {
    ObjectInputStream _ois = new ObjectInputStream(_socket.getInputStream());
    Message _message;
    while (_socket.isConnected()) {
        _message = (Message) _ois.readObject();
        System.out.println( _message.getAll());

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

    }
}
   }

我会将此方法添加到服务器,并在服务器收到消息时发出if语句<代码>如果(messageIsReceived)发送消息(messageReceived)

}捕获(IOException e){}
-永远不要这样做,因为你不知道出了什么问题。至少,
}catch(IOException e){e.printStackTrace();}
可以看到错误。(当然,与
ClassNotFoundException
和任何其他异常一样)发布堆栈trace@immibis添加的内容比您多。@atishhimpi没有错误。它只是不在TextClient上显示消息。从服务器到客户端,您实际上在哪里发送任何内容?
public void sendMessage(String _message) throws IOException {
    ObjectOutputStream _obj = new ObjectOutputStream(_socket.getOutputStream());
    _obj.writeObject(new Message(_username, _message));
    _obj.flush();
}