可以读写消息的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();
}
}