当前位置: 首页 > wzjs >正文

网络规划设计师报考苏州优化网站公司

网络规划设计师报考,苏州优化网站公司,河北城乡和住房建设厅官方网站,vs中做网站怎么设置图片标准一、C/S模式核心原理 1.1 基本架构 C/S(Client/Server)模式采用客户端-服务器架构: 服务器端:持续运行,负责消息路由和广播客户端:用户交互界面,连接服务器进行通信通信协议:TCP&…

一、C/S模式核心原理

1.1 基本架构

C/S(Client/Server)模式采用客户端-服务器架构:

  • 服务器端:持续运行,负责消息路由和广播
  • 客户端:用户交互界面,连接服务器进行通信
  • 通信协议:TCP(可靠连接)/UDP(无连接)

1.2 Java核心API

  • ServerSocket:服务器端监听端口
  • Socket:客户端建立连接
  • BufferedReader/PrintWriter:字符流操作

二、聊天室功能设计

2.1 功能需求

  • 多客户端连接
  • 实时消息广播
  • 用户昵称管理
  • 上下线通知

2.2 技术方案

模块技术实现
网络通信TCP Socket
并发处理多线程
消息协议自定义简单文本格式
用户管理线程安全集合

三、服务器端实现

3.1 服务器主类

public class ChatServer {private static final int PORT = 8888;private static Set<ClientHandler> clients = new HashSet<>();public static void main(String[] args) {try (ServerSocket serverSocket = new ServerSocket(PORT)) {System.out.println("服务器启动,监听端口:" + PORT);while (true) {Socket clientSocket = serverSocket.accept();ClientHandler client = new ClientHandler(clientSocket);clients.add(client);new Thread(client).start();}} catch (IOException e) {e.printStackTrace();}}// 广播消息给所有客户端public static void broadcast(String message) {clients.removeIf(ClientHandler::isClosed);for (ClientHandler client : clients) {client.sendMessage(message);}}
}

3.2 客户端处理线程

class ClientHandler implements Runnable {private Socket socket;private PrintWriter out;private BufferedReader in;private String nickname;public ClientHandler(Socket socket) throws IOException {this.socket = socket;this.out = new PrintWriter(socket.getOutputStream(), true);this.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));this.nickname = in.readLine(); // 读取昵称ChatServer.broadcast(nickname + " 进入了聊天室");}@Overridepublic void run() {try {String inputLine;while ((inputLine = in.readLine()) != null) {ChatServer.broadcast(nickname + ": " + inputLine);}} catch (IOException e) {System.out.println(nickname + " 异常断开连接");} finally {closeConnection();}}// 关闭连接private void closeConnection() {try {ChatServer.broadcast(nickname + " 离开了聊天室");socket.close();in.close();out.close();} catch (IOException e) {e.printStackTrace();}}public void sendMessage(String message) {out.println(message);}public boolean isClosed() {return socket.isClosed();}
}

四、客户端实现

4.1 客户端主类

public class ChatClient {private static final String SERVER_IP = "127.0.0.1";private static final int SERVER_PORT = 8888;public static void main(String[] args) {try {Socket socket = new Socket(SERVER_IP, SERVER_PORT);System.out.print("请输入昵称:");String nickname = new Scanner(System.in).nextLine();// 发送昵称PrintWriter out = new PrintWriter(socket.getOutputStream(), true);out.println(nickname);// 启动消息接收线程new Thread(new MessageReceiver(socket)).start();// 处理用户输入Scanner scanner = new Scanner(System.in);while (true) {String message = scanner.nextLine();out.println(message);}} catch (IOException e) {System.out.println("无法连接到服务器");}}
}class MessageReceiver implements Runnable {private Socket socket;private BufferedReader in;public MessageReceiver(Socket socket) throws IOException {this.socket = socket;this.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));}@Overridepublic void run() {try {String response;while ((response = in.readLine()) != null) {System.out.println(response);}} catch (IOException e) {System.out.println("与服务器断开连接");}}
}

五、运行测试

5.1 启动服务器

$ java ChatServer
服务器启动,监听端口:8888

5.2 启动多个客户端

客户端1:

请输入昵称:Alice
欢迎进入聊天室!
Alice: 大家好!

客户端2:

请输入昵称:Bob
Alice 进入了聊天室
Bob: 你好!
http://www.dtcms.com/wzjs/333364.html

相关文章:

  • app开发公司软件开发公司seo应该怎么做
  • 可以做设计兼职的网站有哪些怎么制作网站?
  • 网站设计与建设ppt互联网营销师含金量
  • 虚拟偶像定制appseo技巧优化
  • 流行用什么做网站seo排名技术教程
  • 建立主题网站的顺序是工具站seo
  • 台州网站关键字优化百度竞价推广专员
  • 家庭网络如何做网站服务器360优化大师官方最新
  • 群晖nas可以做网站服务器百度联系方式
  • 电子商务网站调研网络推广是诈骗吗
  • 潍坊网络推广网站建设正规排名网站推广公司
  • 做网站的桔子什么媒体宣传推广方案
  • 社保网站减员申报怎么做百度指数批量查询工具
  • wordpress ovz安装网站排名优化软件
  • 网站建设培训一般多少钱百度推广助手app下载
  • 免费开源的网站系统seo推广服务哪家好
  • 在本地做的网站怎么修改域名seo与sem的区别和联系
  • 如何架设网站服务器seo站长工具查询
  • 全球广告公司排名提供seo顾问服务适合的对象是
  • 做视频资源网站有哪些内容最近一周的重大新闻
  • 网站建设dede模板免费seo网络运营
  • 阿里云备案网站建设方案书范文百度站点
  • 南昌企业建站seo和sem
  • 做的比较好网站有哪些企业官网
  • 做网站的费用 优帮云培训班
  • 网络建站模板站长
  • 张家港网站开发培训广告代理全网seo
  • b站 私人直播间站长seo推广
  • 龙岗网站 建设深圳信科产品推广软文300字
  • 做网站是不是要学编程google搜索排名优化