缘起 网络编程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GoSaint/article/details/78985383

我为什么要学习Java网络编程,在实际的项目开发中,尤其是移动电信领域。很不辛或者是很辛运来到这个行业。之所以这样说是因为我之前做的项目一般的都是CRUD的基本操作,虽然说现在的Java企业架构一般都是面向微服务,诸如Spring Cloud,Spring Boot。或者是一些分布式框架,几乎都是面向服务的架构,服务的提供者,服务的消费者等等。我也是停留在会使用的阶段,虽然我知道分布式框架的底层都存在着Java网络通讯,可是始终不敢去正面的和他交锋,我之所以说不幸之处在于我从来没有去研究这块,辛运的是我不得不研究这块。我的项目的实际开发阶段,需要更多的网络编程。

1 家书抵万金

A要给B写信,那么首先要知道B的地址,然后通过邮局送达。B如果要回信,那么同样的也需要A的地址,也要通过邮局去送达。
在这里我们不关心邮局是如何送达信件的,是骑马也好,或者步行或者坐船等,这些过程或者方式我们是不需要关心的。上述的这种例子就是一个很好的计算机通讯的示例。
这里写图片描述
下面看一个模拟通讯的实例

package com.asiaInfo.caozg.ch_01;

import java.io.BufferedReader;
import java.io.IOError;
import java.io.InputStreamReader;

/**
 * @Authgor: gosaint
 * @Description:
 * @Date Created in 12:35 2018/1/5
 * @Modified By:
 */
public class EchoPlayer {
    public static String echo(String msg){
        return "echo :"+msg;
    }
    public static void talk() throws IOError{
        try {
            /**
             * 创建字符缓冲流对象,读取字符输入流
             */
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String msg =null;
            while((msg=br.readLine())!=null){
                System.out.println(echo(msg));
                if(msg.equals("bye")){
                    break;
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        talk();
    }
}

调用talk()方法,当我们每输入一次,就会返回echo:xxx.知道输入的字符串和程序中的相等,程序执行完毕。这就像我们请求一次服务器一样,服务器会返回给我们一些数据,直到程序运行的终止
这里写图片描述

2 计算机网络概念

1 结点:在计算机网络中,每一台计算机都可以说是一个结点,也包括一些终端,比如路由器,打印机等。
2 网络协议:计算机之间的交流的方式。人和人之间使用语言交流,计算机之间的交流方式或者语言方式就是网络协议
3 Internet:提供了www服务,FTP(文件传输)服务,E-mail服务,Telnet(远程登陆)服务。

3 OSI模型

TCP/IP协议:问题来了,比如说上海人之间使用上海话交流,广东人之间使用粤语交流,那么上海人和广东人之间使用什么交流呢?答案自然是普通话。同样的一个网络使用A协议,一个网络使用B协议沟通,那么这两个网络之间怎么交流,答案就是TCP/IP协议。
比如说手机产生之初,每一个人的手机型号,品牌可能不相同,因此充电器也是不相同。你的手机没电了一般不可能使用我的充电器,到了最后,标准出来了,使用同样的USB接口,这样就解决了。网络之间也是这样的。为了解决网络之间的便利通讯,OSI标准出来了,open system interConnection。下面我们看看OSI的七层模型。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/GoSaint/article/details/78985383