网站建设具备知识技能,网站定制开发微信运营,网站建设后台怎么修改,龙江网站建设公司大体实现功能可以选择房间#xff0c;可以与房间中的用户进行实时的交流说在前面的话:serverSocket.accept() 会形成阻塞scanner.hasNextLine() 和 scanner.nextLine() 也会形成阻塞windows 下需要打开telnet服务。请自行百度实现思路:用户连接上服务器后选择房间号#xff0…大体实现功能可以选择房间可以与房间中的用户进行实时的交流说在前面的话:serverSocket.accept() 会形成阻塞scanner.hasNextLine() 和 scanner.nextLine() 也会形成阻塞windows 下需要打开telnet服务。请自行百度实现思路:用户连接上服务器后选择房间号进入房间。进入房间后会向房间中所有的用户打印出用户进入房间的提醒。用户进入房间后输入姓名即可发言。说起来很简单代码实现更简单。我们需要一个保存房间用户的容器。我这里使用的是。// 保存聊天室中的用户数据private static Map charScnnerMap new HashMap();使用 try-with-resource 语法防止出现资源未关闭的情况出现。直接上代码package com.annie;import com.sun.org.apache.xml.internal.resolver.readers.ExtendedXMLCatalogReader;import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.*;public class App {// 保存聊天室中的用户数据private static Map charScnnerMap new HashMap();public static void print(List charNames, String conn) {for (Map charName : charNames) {Set entries charName.entrySet();for (Map.Entry entry : entries) {entry.getValue().println(conn);}}}public static void main(String[] args) throws InterruptedException {charScnnerMap.put(1, new ArrayList());charScnnerMap.put(2, new ArrayList());charScnnerMap.put(3, new ArrayList());// 监控本机端口 9189try (ServerSocket serverSocket new ServerSocket(9189)) {while (true) {Socket accept serverSocket.accept();new Thread(() - {try (InputStream inputStream accept.getInputStream();OutputStream outputStream accept.getOutputStream();Scanner scanner new Scanner(inputStream, UTF-8);PrintWriter out new PrintWriter(new OutputStreamWriter(outputStream, UTF-8), true)) {// 定位房间String number -1;out.println(Please enter the room number.(1-3): );number scanner.nextLine();if (!number.equals(1) !number.equals(2) !number.equals(3)) {while (true) {out.println(Please enter the correct room.(1-3): );number scanner.nextLine();if (number.equals(1) || number.equals(2) || number.equals(3)) {break;}}}// 显示姓名out.println(Please enter your name: );String name scanner.nextLine();List charNames charScnnerMap.get(number);Map m new HashMap();m.put(name, out);charNames.add(m);// 打印内容print(charNames, Welcome [ name ] to the room.);boolean b true;while (b scanner.hasNextLine()) {String s scanner.nextLine();print(charNames, name : s);if (s.equals(BB)) {print(charNames, [ name ]Exit the room);b false;}}} catch (Exception e) {e.printStackTrace();}}).start();}} catch (IOException e) {e.printStackTrace();}}}结尾如果您觉得这边文章对您有帮助麻烦加 。您的支持是对笔者的最大帮助