网络编程 -金典echo案例
2019独角兽企业重金招聘Python工程师标准>>>
一、服务端
package com.server;import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;/*** @Auther: chenzhou* @Date: 2019/2/25* @Description: 网络编程服务端* @version: 1.0*/
public class Server{public static void main(String[] args) throws Exception {ServerSocket serverSocket = new ServerSocket(9999);//设置端口号System.out.println("等待客户端连接");Socket accept = serverSocket.accept();//首先接收客户端发来的消息,然后进行数据处理后发送回客户端Scanner scanner = new Scanner(accept.getInputStream());//得到客户端发送的数据PrintStream stream = new PrintStream(accept.getOutputStream());//向客户端发送数据Boolean flag = true;while (flag){if(scanner.hasNext()){String next = scanner.next().trim();if("bye".equals(next)){stream.println("ByeBye!!!");flag = false;}else{stream.println("[Echo]"+next);}}}//关闭流stream.close();scanner.close();serverSocket.close();}
}
二、客户端
package com.client;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;/*** @Auther: chenzhou* @Date: 2019/2/25* @Description: 网络编程客户端* @version: 1.0*/
public class Client {private static final BufferedReader BUFFERED_READER= new BufferedReader(new InputStreamReader(System.in));public static void main(String[] args) throws Exception{Socket socket = new Socket("localhost",9999);Scanner scanner = new Scanner(socket.getInputStream());//服务端发来的信息PrintStream stream = new PrintStream(socket.getOutputStream());//向服务端发送信息Boolean flag = true;while(flag){String input = getString("请输入要发送的内容");stream.println(input);if(scanner.hasNext()){String next = scanner.next();System.out.println(next);}if("bye".equalsIgnoreCase(input)){flag = false;}}stream.close();scanner.close();socket.close();}public static String getString(String Prompt) throws Exception{System.out.println(Prompt);String s = BUFFERED_READER.readLine();return s;}
}
输出结果:
三、多线程实现服务端(多个客户端连接一个服务端)
package com.server;import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;/*** @Auther: chenzhou* @Date: 2019/2/25* @Description: 多线程实现服务端,让每个线程去处理客户端的请求* @version: 1.0*/
public class ServerForMore implements Runnable{Socket socket = null;Scanner scanner = null;PrintStream stream= null;Boolean flag = true;//构造器初始化参数public ServerForMore(Socket client) throws Exception {this.socket = client;scanner = new Scanner(client.getInputStream());//得到客户端发送的数据stream = new PrintStream(client.getOutputStream());//向客户端发送消息}@Overridepublic void run() {while (this.flag){if(this.scanner.hasNext()){String next = scanner.next().trim();if("bye".equals(next)){stream.println("ByeBye!!!");flag = false;}else{stream.println("[Echo]"+next);}}}//关闭流stream.close();scanner.close();try {socket.close();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) throws Exception {ServerSocket serverSocket = new ServerSocket(9999);System.out.println("等待客户端连接。。。。");Boolean flag = true;while(flag){Socket client = serverSocket.accept();new Thread(new ServerForMore(client)).start();}serverSocket.close();}
}
转载于:https://my.oschina.net/chenzhou/blog/3014415
网络编程 -金典echo案例相关推荐
- Unity3D网络游戏开发——开始网络编程:Echo
Unity3D网络游戏开发--开始网络编程:Echo(客户端部分) 什么是Echo程序 Echo程序是网络编程中最基础的案例.建立网络连接后,客户端向服务端发送一行文本,服务端收到后将文本送回客户端. ...
- 【Netty】NIO 网络编程 聊天室案例
文章目录 一. NIO 聊天室需求 二. NIO 聊天室 服务器端 代码分析 三. NIO 聊天室 客户端 代码分析 四. NIO 聊天室 服务器端 完整代码 五. NIO 聊天室 客户端 完整代码 ...
- Socket网络编程tcp聊天案例(心跳包,多线程,断线重连机制)
实现一个聊天的案例,使用多线程和心跳包.当服务器断开的时候,客户端会自动尝试重新连接,当服务器开启的时候,客户端会自动连接 Server服务器类 package Demo3_Chat;import c ...
- 安卓学习笔记40:基于套接字网络编程
文章目录 零.学习目标 一.Socket概述 (一)两种传输模式 (二)基于Socket网络编程 三.案例演示 - C/S架构聊天室 (一)运行效果 (二)涉及知识点 (三)实现步骤 1.创建聊天服务 ...
- 网络编程及socket模块
目录 1.必备基础 1.1 网络架构 1.1.1 交换机 1.1.2 路由器 1.1.3 三层交换机 1.1.4 小型企业基础网络架构 1.1.5 家庭网络架构 1.1.6 互联网 1.2 网络核心词 ...
- 18.Socket网络编程
JavaSE高级 网络编程 第一章 网络编程入门 1.1软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构.常见程序有QQ.迅雷等软件. B/S结构 :全称为Brow ...
- JavaSE高级 网络编程
JavaSE高级 网络编程 教学目标 能够辨别UDP和TCP协议特点 UDP 无连接,基于数据包,发出去就不管了,性能好,可能丢失数据. TCP有连接,基于通信管道,可靠传输. 能够说出TCP协议下两 ...
- java echo程序,java网络编程 echo
echo是? ECHO程序:是一个网络编程通信交互的经典例子,称为回应程序. -客户端输入的内容,服务器端会在这些内容前加上"ECHO":并将信息发回给客户端. 服务器端: pac ...
- JAVA入门到精通-网络编程补充和QQ案例
------------------------------------------------------ 补充讲解: 如何在网络间传递对象? [MyServer.java]服务器源代码 packa ...
最新文章
- SQL Server数据库自增字段正确的插入值的描述
- LeetCode 1222. 可以攻击国王的皇后(set)
- 深入解析ES6中let和闭包
- 浅谈SkyEye虚拟ECU
- C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题
- 2018春招-赛码网-例题-水仙花数
- 《大道至简——软件工程实践者的思想》阅读笔记之一
- 概率图模型(PGM)学习笔记(二)贝叶斯网络-语义学与因子分解
- 数控加工仿真系统 - FANUC OI 车床编程笔记(粗略)
- 一个基于.NET Core3.1的开源项目帮你彻底搞懂WPF框架Prism
- Halcon 3D 计算3D模型的3D表面法线
- 基于java的化妆品购物商城微信小程序的设计与实现 毕业设计毕设参考
- codeforces1299C Water Balance
- thinkphp5.0漏洞修复
- 新氧,今天受了点儿伤
- Word换页不用频繁敲回车
- google账号已停用,此账号的使用方式似乎违反了Google的政策
- w ndows平板插sim卡,HUAWEI MateBookE怎么插入sim卡上网和接收短信?
- 赛扬N4000和赛扬N5095的区别
- BW顾问进阶:SAP BW后勤数据源抽取机制