分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Netty(二):简单的客户端服务端demo

发布时间:2023-09-06 02:19责任编辑:蔡小小关键词:暂无标签

使用Java IO实现客户端服务端

服务端监听端口

客户端连接服务端

客户端循环写数据到服务端

import java.io.IOException;import java.net.Socket;/** * @author ko */public class Client { ???private static final String HOST = "127.0.0.1"; ???private static final int PORT = 8000; ???private static final int SLEEP_TIME = 5000; ???public static void main(String[] args) throws IOException { ???????final Socket socket = new Socket(HOST, PORT); ???????new Thread(new Runnable() { ???????????@Override ???????????public void run() { ???????????????System.out.println("客户端启动成功!"); ???????????????while (true) { ???????????????????try { ???????????????????????String message = "hello world"; ???????????????????????System.out.println("客户端发送数据: " + message); ???????????????????????socket.getOutputStream().write(message.getBytes()); ???????????????????} catch (Exception e) { ???????????????????????System.out.println("写数据出错!"); ???????????????????} ???????????????????sleep(); ???????????????} ???????????} ???????}).start(); ???} ???private static void sleep() { ???????try { ???????????Thread.sleep(SLEEP_TIME); ???????} catch (InterruptedException e) { ???????????e.printStackTrace(); ???????} ???}}
import java.io.IOException;import java.io.InputStream;import java.net.Socket;public class ClientHandler { ???public static final int MAX_DATA_LEN = 1024; ???private final Socket socket; ???public ClientHandler(Socket socket) { ???????this.socket = socket; ???} ???public void start() { ???????System.out.println("新客户端接入"); ???????new Thread(new Runnable() { ???????????@Override ???????????public void run() { ???????????????doStart(); ???????????} ???????}).start(); ???} ???private void doStart() { ???????try { ???????????InputStream inputStream = socket.getInputStream(); ???????????while (true) { ???????????????byte[] data = new byte[MAX_DATA_LEN]; ???????????????int len; ???????????????while ((len = inputStream.read(data)) != -1) { ???????????????????String message = new String(data, 0, len); ???????????????????System.out.println("客户端传来消息: " + message); ???????????????????socket.getOutputStream().write(data); ???????????????} ???????????} ???????} catch (IOException e) { ???????????e.printStackTrace(); ???????} ???}}
import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server { ???private ServerSocket serverSocket; ???public Server(int port) { ???????try { ???????????this.serverSocket = new ServerSocket(port); ???????????System.out.println("服务端启动成功,端口:" + port); ???????} catch (IOException exception) { ???????????System.out.println("服务端启动失败"); ???????} ???} ???public void start() { ???????new Thread(new Runnable() { ???????????@Override ???????????public void run() { ???????????????doStart(); ???????????} ???????}).start(); ???} ???private void doStart() { ???????while (true) { ???????????try { ???????????????Socket client = serverSocket.accept(); ???????????????new ClientHandler(client).start(); ???????????} catch (IOException e) { ???????????????System.out.println("服务端异常"); ???????????} ???????} ???}}
/** * @author ko */public class ServerBoot { ???private static final int PORT = 8000; ???public static void main(String[] args) { ???????Server server = new Server(PORT); ???????server.start(); ???}}

Netty(二):简单的客户端服务端demo

原文地址:https://www.cnblogs.com/shamo89/p/9637764.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved