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();

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

            </div>
相关文章
|
12月前
|
Shell
Shell脚本开发:printf和test命令的实际应用
Shell printf 命令 当你使用Shell中的printf命令时,它可以帮助你格式化和输出文本。 打印简单文本 这将简单地打印字符串"Hello, World!",并在末尾添加一个换行符\n来换行。 printf "Hello, World!\n" Shell test 命令 当你使用Shell中的test命令时,它用于测试条件是否为真(True)。test命令通常用于Shell脚本中的条件判断,以便根据条件的结果执行不同的操作。
52 1
|
11月前
|
Linux
echo显示Linux命令执行的结果
echo显示Linux命令执行的结果
|
5月前
|
机器学习/深度学习 大数据 Shell
Shell基础学习---1、Shell概述、脚本入门、变量
大数据学习 Shell基础学习---1、Shell概述、脚本入门、变量
404 1
|
网络协议 Java 开发者
Echo 程序模型|学习笔记
快速学习 Echo 程序模型
171 0
 Echo 程序模型|学习笔记
|
Shell
shell echo用法分析
时间:2017.12.21作者:李强参考:man,info,magedu讲义,万能的internet实验环境:VMware® Workstation 12 Pro ,Centos 6.9,Centos 7.4,SecureCRT Version 8.1.4声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
682 0
cat命令分析_学习记录
cat命令是将标准输入输出到标准输出 SYNOPSIS        cat [OPTION]... [FILE]... 虽然我们经常用cat来查看文件,但是它的本意可不是查看文件的,而是concatenate and write file cat后可以跟文件,就是把文件的内容当做标准输入,输出到标准输出 cat f >> f2 就可以2个文件内容合并到一起去 cat  f1 f2 >> f4 就会把2个文件的内容合并到f4中 另外就是cat >> ff 接受的stdin就不会打印在stdout上,就会重定向到ff中 我们就会发现cat和重定向组合的很是频繁。
611 0
|
Shell
[20171205]bash for例子错误.txt
[20171205]bash for例子错误.txt --//今天写bash for循环,遇到问题.通过例子说明: $ cat tt1.sh #! /bin/bash for i in { 1 .
1037 0
下一篇
无影云桌面