Java 12网络编程

Posted rango0550

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 12网络编程相关的知识,希望对你有一定的参考价值。

1.网络编程入门

1.1软件结构

CS结构,全称为Client/Sever结构,是指客户端与服务端的结果,如qq  迅雷

BS结构,全称为Browser/Server结构,是指浏览器和服务端的结构,常见浏览器如谷歌或火狐。

两种架构各有优势,但无论哪种架构,都离不开网络的支持,网络编程也就是在一定的协议下,支持两个计算机的通讯程序。


1.2网络通讯协议

顾名思义,网络通信协议,是指通过计算机网络一遍多台计算机实现连接,位于一个网络中的计算机在连接和通信时需要遵守同一的原则。

重点学习TCP/IP协议。(传输控制协议/因特网互联协议)。它是internet最基本和最广泛的协议,它定义了计算机如何选择入因特网,以及数据如何在他们之间传输的数据,内部包含一些列的用于数据通信的协议,并采用了4层的分层的模型,每一层都呼叫它的下一层所提供的协议完成自己的额需求。

技术图片

说明:应用层  传输层 网络层 和链路层

链路层,定义物理层传输信道,通常是对某些网络连接社保的驱动协议,例如对光纤,网线提供的驱动

网络层,是整个tcp/ip协议的核心,它主要用于将传输的数据进行分组,将分组的数据发送至目标计算机或者网络。

传输层,主要使用网络程序进行通信,在进行网络通信时, 可以采用TCP协议,也可以采用UDP协议。

应用层,主要负责应用程序的协议,例如HTTP协议,FTP协议。


1.3 网络通信协议的分类,也就是传输层的分类


UDP 用户数据包协议 ,效率高,但是不安全。

      面向无连接通信协议,即在数据传输时,数据的发送端和接收端不建议逻辑连接,简单来说,当一台计算机向另一台发送数据时,发送端不会确认接收端是否存在,就会发送数据。比如qq发信息。

    UDP特点 数据被限制在64Kb以内,超出就不能发送了

                  不问目标是否存在,因此可能存在丢失

TCP   传输控制协议  :效率低,但是安全

        面向连接的通信协议,即传输数据前,在发送端和接受端进行逻辑连接,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中,必须要明确客户端和服务器端,由客户端向服务端发起连接请求,每次连接的创建都需要经过三次握手。

第一次:客户端向服务端发出连接请求,等待服务器的确认

第二次L服务器向客户端发送一个响应,通知客户端收到了连接请求

第三次,客户端再次向服务端发送确认消息,确认连接,整个交互过程如下图所示。

1.4 网络编程的三要素  协议  IP地址  端口号

协议

也就是之前学习的内容

IP地址

指的是互联网协议地址即 internet Protocol Address,俗称IP,IP地址用来给一个网络中的计算机设备做唯一的编号,假如我们把个人电脑比作一台电脑,那么IP地址相当于电话号码

IPv4:4个字节的32位的二进制数字,a.b.c.d其中abcd均由10进制数表示,约42亿个。

IPv6:8组16字节的16 进制数组成的128位。

常用命令 

查看本机IPI地址 ipconfig

检查网络是否连接 ping 空格 ip地址

特殊IP地址  127.0.0.1 localhost

1、localhost等于127.0.0.1,不过localhost是域名,127.0.0.1是IP地址。

2、localhost和127.0.0.1不需要联网,都是本机访问。

3、本机IP需要联网,本机IP是本机或外部访问, 本机 IP 就是本机对外放开访问的IP地址,这个网址就是与物理网卡绑定的IP地址。


端口号

端口号是逻辑端口,是无法直接知道的,是通过网络软件货值的,一旦软件打开,操作系统将给与软件随机分配一个端口号。

端口号是由两个字节组成。0-65535之间

          1 1024之前的端口号不可以用

          2 网络软件的端口号不能重复,分配不可重复(理解为门牌号)

          3 常用的网络端口号  80 即可  www.baidu.com:80

                                         mysql:3306  oracle:1251   Tomcat服务器:8080

技术图片


2.TCP的通信程序

TCP通信是指TCP协议进行通信的程序,实现两台计算机的数据交互,通信的两端,要严格区分客户端Client和服务端Server


2.1两端通信的步骤

  • 服务端程序,需要实现启动,等待客户端的连接
  • 客户端主动连接服务器端,连接成功才能通信,服务端不可以直接连接客户端。











以上是关于Java 12网络编程的主要内容,如果未能解决你的问题,请参考以下文章

12.3-全栈Java笔记:Java网络编程

12.4-全栈Java笔记:Java网络编程

Java 12网络编程

12.7-全栈Java笔记:Java网络编程

12.6-全栈Java笔记:Java网络编程

12道Java算法与编程面试题