P41 网络编程入门

  • 1.软件结构
  • 2.网络通信协议
  • 3.协议分类
  • 4.网络编程三要素
    • 4.1 协议
    • 4.2 IP地址
    • 4.3 端口号

系统:Win10
Java:1.8.0_333
IDEA:2020.3.4

1.软件结构

C/S 结构 :全称为 Client/Server 结构,是指客户端和服务器结构。常见程序有 QQ、迅雷等软件

B/S 结构 :全称为 Browser/Server 结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等

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

2.网络通信协议

网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就 好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了 统一规定,通信双方必须同时遵守,最终完成数据交换
TCP/IP 协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是 Internet 最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它 的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的 协议来完成自己的需求

3.协议分类

通信的协议还是比较复杂的, java.net 包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这 些类和接口,来专注于网络程序开发,而不用考虑通信的细节
java.net 包中提供了两种常见的网络协议的支持:
TCP:传输控制协议 (Transmission Control Protocol)。TCP 协议是面向连接的通信协议,即传输数据之前, 在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。
三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠
第一次握手,客户端向服务器端发出连接请求,等待服务器确认
第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求
第三次握手,客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示

完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可 以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等
UDP:用户数据报协议(User Datagram Protocol)。UDP 协议是一个面向无连接的协议。传输数据时,不需要建立连接,不管对方端服务是否启动,直接将数据、数据源和目的地都封装在数据包中,直接发送。每个数据包的大小限制在 64k 以内。它是不可靠协议,因为无连接,所以传输速度快,但是容易丢失数据。日常应 用中,例如视频会议、QQ 聊天等

4.网络编程三要素

4.1 协议

协议:计算机网络通信必须遵守的规则,已经介绍过了,不再赘述。

4.2 IP地址

IP地址:指互联网协议地址(Internet Protocol Address),俗称 IP。IP 地址用来给一个网络中的计算机设备做唯一的编号。假如我们把“个人电脑”比作“一台电话”的话,那么“IP地址”就相当于“电话号码”
IP地址分类
IPv4:是一个 32 位的二进制数,通常被分为 4 个字节,表示成 a.b.c.d 的形式,例如 192.168.65.100。其中a、b、c、d 都是 0~255 之间的十进制整数,那么最多可以表示 42 亿个
IPv6:由于互联网的蓬勃发展,IP 地址的需求量愈来愈大,但是网络地址资源有限,使得 IP 的分配越发紧张。 有资料显示,全球 IPv4 地址在 2011 年 2 月分配完毕。为了扩大地址空间,拟通过 IPv6 重新定义地址空间,采用 128 位地址长度,每 16 个字节一组,分成 8 组十六进制数,表示成 ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题
常用命令
查看本机 IP 地址,在控制台输入

ipconfig

检查网络是否连通,在控制台输入

// ping IP地址
ping 123.45.6.78
// ping 域名
ping www.baidu.com

特殊的IP地址
本机IP地址:127.0.0.1 、 localhost

4.3 端口号

网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分 这些进程呢?
如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。
端口号:用两个字节表示的整数,它的取值范围是 0 ~ 65535。其中,0 ~ 1023 之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要使用 1024 以上的端口号。如果端口号被另外一个服务或应用所占用,会 导致当前程序启动失败
利用 协议 + IP地址 + 端口号 三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其 它进程进行交互

P41 网络编程入门相关推荐

  1. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    为什么80%的码农都做不了架构师?>>>    本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...

  2. 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手

    转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...

  3. BIO,Socket网络编程入门代码示例,NIO网络编程入门代码示例,AIO 网络编程

    BIO,Socket网络编程入门代码示例 1.BIO服务器端程序 package cn.itcast.bio;import java.io.InputStream; import java.io.Ou ...

  4. Day14.网络编程入门及其应用

    网络编程入门及其应用 文章目录 网络编程入门及其应用 前言 一. 网络编程的入门 1.1 计算机网络基础 1.2 计算机网络发展史 1.3 TCP/IP模型 1.4 网络应用模式 二. 基于HTTP协 ...

  5. Day14:网络编程入门

    网络编程入门 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享.今天计算机网络中的设备和计算机网络的用户已经多得不可计数 ...

  6. TCP原理,Socket与网络编程入门

    TCP原理,Socket与网络编程入门 开篇 从互联网的诞生以来,网络程序逐渐普及.计算机网络将各个计算机连接到一起使它们可以通信.在现代,网络已成为我们十分重要的一部分.这次不搞些费脑子的东西,就让 ...

  7. Linux网络编程 入门

    Linux网络编程入门 (转载) (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍 客户端和服务端          网络程序和普通的程序有一个最大的区别是网络程序是由两个 ...

  8. 脑残式网络编程入门(八):你真的了解127.0.0.1和0.0.0.0的区别?

    本文由"小姐姐养的狗"原创发布于"小姐姐味道"公众号,原题<127.0.0.1和0.0.0.0地址的区别>,收录时有优化和改动.感谢原作者的分享. ...

  9. 脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

    转载自 http://www.52im.net/thread-1732-1-1.html 1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式 ...

最新文章

  1. Web图形开发,SVG还是VML?
  2. PAT A1098 堆排序
  3. 双鉴探测器是哪两种探测方式结合_火灾探测器、手动火灾探测器和自动火灾报警分类...
  4. django model Meta选项
  5. bulk批量下载影像
  6. LVDS原理及设计指南
  7. android: 怎么使用腾讯X5WebView
  8. 常见运维问题以及解决方案
  9. cpm,cpc,cps和cpa分别是什么意思
  10. python怎么加图片_python图片加水印
  11. Windows系列操作系统注册表的组成与分析(转)
  12. 理解手机中的感应器模块:重力感应/光线感应/电子罗盘/陀螺仪模块功能
  13. 利用好 git bisect 这把利器,帮助你快速定位疑难 Bug
  14. 一文教你用 Neo4j 快速构建明星关系图谱
  15. 计算机设备选型的基本原则,设备选型的概念和选型依据
  16. 电脑计算机在哪里关闭杀毒模式,电脑一开杀毒软件就关闭的解决方法
  17. cad中直径符号不显示_怎么在CAD、Word里敲出直径符号,你会吗?
  18. Ubuntu Fcitx 繁简输入切换
  19. 26个字母和数字符号ASCII码对照表
  20. 2021届计算机女硕士秋招面试惨痛经历完结

热门文章

  1. Python升级到最新版本代码
  2. 2023年,web前端工程师20道Vue面试题及解析
  3. APICloud初使用记录
  4. idea断点里没有对号问题解决
  5. IS_ERR()宏是什么意思
  6. PMP项目管理计算中字母含义 PV、EV、AC、SV、CV、SPI、CPI
  7. DataStage 简介
  8. 用递归算法,把任一给定的十进制正整数转换成八进制数输出。
  9. MySQL 生成随机数字、字符串、日期、验证码以及 UUID
  10. 线性关系r范围_一个简单线性回归和多项式回归在R中的实现示例