可以读写消息的Java聊天服务器

可以读写消息的Java聊天服务器,java,Java,我试着制作一个可以向多个客户端发送和接收消息的服务器。但是我有一个问题,客户端甚至没有将消息发送到我想要的服务器。我还没有添加服务器的写入部分,现在我只是尝试让服务器从客户端读取消息。谢谢你的帮助。这是我的服务器和客户端: public class Main { public static ArrayList<PrintWriter> writers = new ArrayList<PrintWriter>(); public static void main(Str

我试着制作一个可以向多个客户端发送和接收消息的服务器。但是我有一个问题,客户端甚至没有将消息发送到我想要的服务器。我还没有添加服务器的写入部分,现在我只是尝试让服务器从客户端读取消息。谢谢你的帮助。这是我的服务器和客户端:

public class Main {


public static ArrayList<PrintWriter> writers = new ArrayList<PrintWriter>();
public static void main(String[] args) {
    try {
        ServerSocket sock = new ServerSocket(9898);
        while (true) {
            try {
                Socket client = sock.accept();
                PrintWriter writer = new PrintWriter(client.getOutputStream());
                writers.add(writer);
                Thread t = new Thread(new Handler(client));
                t.start();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println("Server Started");
}
}

公共类管理器实现Runnable{

Socket sockel;
String pcname = System.getProperty("user.name");
BufferedReader reader;
PrintWriter writer;
@Override
public void run() {
    try {
        sockel = new Socket("localhost", 9898);
        //Streams
        reader = new BufferedReader(new InputStreamReader(sockel.getInputStream()));
        writer = new PrintWriter(sockel.getOutputStream());
        //--------------
        System.out.println("Connected to: " + sockel.getInetAddress());
        writer.write("hello");
        writer.flush();
        System.out.println("here");
        String command = reader.readLine();
        while(!command.equalsIgnoreCase("close" + pcname)) {
            System.out.println("Got Message: " + command);
        }
    }catch(IOException e) {
        e.printStackTrace();
    }
}

}您没有使用类管理器。 您必须创建两个项目一个客户端和另一个服务器,然后启动服务器项目,然后启动客户端


我希望这对您有所帮助。

寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参见:如何创建。使用“编辑”链接改进您的问题-不要通过评论添加更多信息。谢谢你有什么例外吗?你就像“代码不工作。这里是代码”。。。现在呢?我们花时间阅读您的代码,可能是运行代码,以找出问题所在,然后为您解决问题?对不起,这不是这个网站的工作方式。学习编程的整个理念就是花时间去理解问题并解决问题。你正试图把那些讨厌的工作委托给其他人。提示:预览功能的存在是有原因的,这样你可以在发送给我们之前检查输入的格式。“但是我有一个问题,客户端甚至没有将消息发送到我想要的服务器。”你怎么知道的?
Socket sockel;
String pcname = System.getProperty("user.name");
BufferedReader reader;
PrintWriter writer;
@Override
public void run() {
    try {
        sockel = new Socket("localhost", 9898);
        //Streams
        reader = new BufferedReader(new InputStreamReader(sockel.getInputStream()));
        writer = new PrintWriter(sockel.getOutputStream());
        //--------------
        System.out.println("Connected to: " + sockel.getInetAddress());
        writer.write("hello");
        writer.flush();
        System.out.println("here");
        String command = reader.readLine();
        while(!command.equalsIgnoreCase("close" + pcname)) {
            System.out.println("Got Message: " + command);
        }
    }catch(IOException e) {
        e.printStackTrace();
    }
}