Echo 程序模型|学习笔记-阿里云开发者社区

开发者社区> 学堂小助手> 正文

Echo 程序模型|学习笔记

简介: 快速学习 Echo 程序模型
+关注继续查看

开发者学堂课程【Java 高级编程Echo 程序模型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/429


Echo 程序模型


TCP 程序的基本实现

TCP 的程序开发是网络程序的最基本的开发模型,其核心的特点是使用两个类实现数据的交互处理: ServerSocket (服务器端)、Socket客户端

: ServerSocket Socket:

图片1.png

ServerSocket 的主要目的是设置服务器的监听端口,而 Socket 需要指明要连接的服务器地址与端口。

实现一个数据的最简单的操作如下:即: Echo 程序实现

图片2.png

范例:实现服务器端的定义

package cn.mldn.demo.server;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket; 

import java.util.Scanner;

public class EchoServer {

public static void main(String[] args) throws Exception {

ServerSocket server=new ServerSocket(9999);//设置服务器端的监听端口

System.out.println("等待客户端连接............");

Socket client=server.accept();//有客户端连接

//首先需要先接收客户端发送来的信息,而后才可以将信息处理之后发送回客户端

Scanner scan = new Scanner(clien.getInputStream());//客户端输入流

scan. useDelimiter("\n");//设置分隔符

PrintWriter out=new PrintWriter(client.getOutputStream());//客户端输出流

boolean flag=true;//循环标记

while (f1ag) {

if(scan.hasNext())​​ ​​{​​ ​​//现在有数据发送

String val = scan.next();//接收发送的数据if ("byebye".equalsIgnoreCase(va1)) {out.println("ByeByeBye....");

flag = false;//结束循环

else {

out.println("[ECHO]"+ val);

client.close();

server.close(;

 

注:如果此时需要对程序进行测试,最好的方法是直接使用.最好的方法是直接使用 telnet 命令完成,但是此命令在 windows7 已经变为了默认不开启状态,所以如果要想使用则必须单独启用此命令。

范例:客户端代码

package cn.mldn.demo.client;

import java.io.BufferedReader;

import java.io.InputStreamReader ;import java.net.Socket;

public class EchoClient (

private static final BufferedReader KEYBOARD_ INPUT = new BufferedReader(new InputStreamReader(Syspublic static void main(String[ ] args) throws Exception

Socket client = new Socket("localhost",9999);​​//定义服务器端的连接信息​​ 

//现在的客户端需要有输入与输出的操作支持,所以依然要准备出Scanner与PrintWriter

Scanner scan = new Scanner(client. getInputStream());​​//接受服务器端的输入内容

PrintWriter out = new PrintWriter(client.getOutputStream());​​//向服务器端​​public String getString(String prompt) throws Exception ​​{

System.out.print (prompt) ;

String str = KEYBOARD_ INPUT. readLine() ;

return str ;

if (scan. hasNext())​​  {//服务器端有回应了​​System.out.println(scan.next());

if ("byebye".equalsIgnoreCase(input)) ​​{

flag

scan.close();

out.c1ose();

c1ient.close();

注:此时就实现了一个最基础的客户端与服务器端之间的数据通讯操作。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10080 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2962 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11614 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2511 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10883 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7496 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4504 0
1394
文章
0
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载