网络编程

1.理解网络的相关概念

计算机网络: 多个计算机通过专业设备进行连接,形成一个网络,每一台计算机都算是一个网络节点,可以相互进行信息的传递等。

网络的分类

  1. 局域网: 两台或两台以上电脑通过交换机连接进行数据传输,
  2. 城域网:一个城市的计算机连接,叫做城域网
  3. 广域网:各大城市之间的连接。也可以叫互联网
  4. 无线网:不用线连接的方式,叫做无线网
  5. 网络通信-IP

在网络中,每台计算机都需要遵守IP协议产生·一个惟一的上网的标识
IP(Internet Protocol)
IPV4:由4个8位二进制组成。
但是这个是二进制数的01代码,不方便记忆,所以就转换为十进制
范围:0~225.
192.168.3.124
IPV6:基本上可以满足全世界的地址需求

查看本机的IP地址: ipconfig
测试网络连通: ping 要连接的IP地址
DNA(Domaen Name System)域名系统
他会在系统内准备一个域名和对应机器Ip的映射表

访问一个域名时:

  1. 查找浏览器内是否有缓存映射
  2. 查找本机的hosts文件
  3. 前往网络服务商提供的域名系统
    特殊的IP:127.0.0.1 == localhost 本机的回环地址,可以表示本机

网络通信-端口

每个程序运行时都会占用一个端口,它是唯一的。 端口范围:0-65535

我们如果想通过某个程序在网络内进行信息交流,必须要知道对方的IP和程序端口号。

IP:端口号

例如:127.0.0.1:8080

61.135.169.125:80(HTTP协议默认端口是80)

2. 使用Socket实现网络应用程序

应用程序的架构

B/S(Browser浏览器<客户端>/Server服务器)

基于浏览器为客户端的网络应用程序。

典型:网站、小程序…

优点:

  1. 无需下载安装,只要有浏览器就可以访问。【可以留住很多用户】
  2. 服务器更新,用户几乎无感知。刷新浏览器就可以得到最新的内容。
  3. 因为只需要有浏览器,所以在平台层面的兼容性可以忽略了。

缺点:

  1. 因为所有的资源都在服务器上,所以在传输信息过程中受到带宽影响比较大。
  2. 在画面渲染和安全验证方面,受限严重。
  3. 因为资源请求是同步请求,所以用户体验很差。【由谷歌地图带起AJAX风之后,有所改善】

C/S(Client客户端/Server服务器)

基于自身定制的客户端的网络应用。

典型:QQ 微信 APP 端/手游

优点:

  1. 因为大多数普通资源都放在了客户端(胖客户端),所以在传输信息只需要加载一些重要信息即可,受到带宽影响较小。
  2. 在画面渲染和安全验证方面,比较强,实现也比较容易。
  3. 因为信息加载只需要加载必要信息,所以体验较好。

缺点:

  1. 必须安装客户端才能使用。
  2. 如果服务器更新,必须要重新下载客户端。(省流/补丁更新)
  3. 不同的平台必须适配不同的版本。

Socket介绍

插座,通信链路点

传输协议

网络模型中传输层的协议。TCP UDP

TCP:传输控制协议

三次握手  面向连接的传输协议  适用于传输重要的 对安全要求比较高的信息。 下载文件、聊天、传输资料为了维护连接可靠,效率较低

UDP:用户数据报协议

面向无连接的传输协议  适用于传输一些不太重要的信息。 视频聊天、看视频效率较高

基于TCP

ServerSocket

Socket

基于UDP

DatagramPacket

DatagramSocket

一个星期快速自学java编程高级语言干货笔记 -网络编程相关推荐

  1. 一个星期快速自学java编程高级语言干货笔记 -实用类

    1.掌握枚举的使用 枚举: 引用数据类型:数组.类(String).接口.枚举 switch支持int String 枚举(enum) public class Student{private Str ...

  2. Java编程那些事儿102——网络编程技术1

    Java编程那些事儿102--网络编程技术1 陈跃峰 出自:http://blog.csdn.net/mailbomb 13.2 网络编程技术 前面介绍了网络编程的相关基础知识,初步建立了网络编程的概 ...

  3. Java核心类库篇8——网络编程

    Java核心类库篇8--网络编程 1.七层网络模型 OSI(Open System Interconnect),即开放式系统互联,是ISO(国际标准化组织)组织在1985 年研究的网络互连模型. 当发 ...

  4. java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...

    20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...

  5. 学习C++项目——一个基于C++11简单易用的轻量级网络编程框架 1

    一个基于C++11简单易用的轻量级网络编程框架 一.项目下载.导入.编译和运行   现在准备深入学习 C++ ,先肝一个项目,这个项目是<一个基于C++11简单易用的轻量级网络编程框架>, ...

  6. java自动化测试语言高级之网络编程

    java自动化测试语言高级之网络编程 文章目录 java自动化测试语言高级之网络编程 Java 网络编程 Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来 ...

  7. Java核心类库之(网络编程:网络编程入门、UDP通信程序、TCP通信程序)

    目录 1 网络编程入门 1.1 网络编程概述 1.2 网络编程三要素 1.3 IP地址 1.4 InetAddress的使用 1.5 端口 1.6 协议 2 UDP通信程序 2.1 UDP通信原理 2 ...

  8. Java编程那些事儿103——网络编程技术2

    Java编程那些事儿103--网络编程技术2 陈跃峰 出自:http://blog.csdn.net/mailbomb 13.2.3 TCP编程 按照前面的介绍,网络通讯的方式有TCP和UDP两种,其 ...

  9. Java编程那些事儿104——网络编程技术3

    Java编程那些事儿104--网络编程技术3 陈跃峰 出自:http://blog.csdn.net/mailbomb 为了一步一步的掌握网络编程,下面再研究网络编程中的两个基本问题,通过解决这两个问 ...

最新文章

  1. DeepMind Nando(原牛津大学教授)强化学习最新进展,含图文、公式和代码,附102页PPT下载...
  2. CSS3伪类和伪元素的特性和区别
  3. IOS开发之手写约束
  4. 第八十八期:4000万程序员最爱开源项目和编程语言排名出炉!
  5. Java总结:Spring5框架(1)
  6. Multisim 14.1 安装步骤
  7. 简单的路由器设置下一条(小白像)
  8. 【论文笔记】Weakly Supervised Discriminative Feature Learning with State Information for Person ...
  9. 莫以物喜 、莫以己悲!
  10. 201606中通笔试题
  11. 在网页上嵌入微博--微博秀
  12. 往事如烟 - 简朴的老白树
  13. ubuntu 9配置
  14. Spring AOP 标签形式及Around增强处理
  15. GNU LGPL协议
  16. okHttp使用中报Could not find method java.nio.file.Files.newOutputStreamo警告问题
  17. OECD富裕经济体系通胀飙升至 25 年高位-全球薪资停滞不前
  18. 将sql数据库字段中的NULL都替换为空
  19. Wavelet-SRNet: A Wavelet-based CNN for Multi-scale Face Super Resolution
  20. 团购市场分析:24券 团购数据处理过程【笔记】

热门文章

  1. Qt 按键触发事件的两种方式
  2. TPLINK渗透实战
  3. PS修改照片的长宽像素和文件大小
  4. vue 通过路由导航守卫控制访问权限
  5. 一文掌握MobileNetV1和MobileNetV2(基于pytorch实现的人像背景虚化)
  6. BTS测试实验室 --- 注入关攻略
  7. Sinfor AC在内网使用代理服务器环境下的部署
  8. 如何在 pyqt 中实现桌面歌词
  9. 职称计算机没门多少题,职称计算机考试有一科没考过怎么办
  10. SCARA机械臂作图 grbl or Marlin