网络编程

  • 基于同一台机器上的多个程序之间通信 可以基于文件
  • 基于多台机器之间的通信 可以基于网络

web程序两种架构完成的:

  • C/S :client(客户端) server(服务端)
  • B/S :browser(浏览器) server(服务端)

安装一个客户端,然后这个客户端就可以和服务端进行网络交互

所有能够用网页访问的网站 这个网站是B/S架构的

  • 拉钩 淘宝 12306 京东 51cto 399
    chrome IE 360 火狐 百度 uc sogou
  • B/S和C/S架构的关系
    • 所有的B/S架构都需要一个浏览器才能访问
    • 浏览器是一个软件,相当于一个客户端
    • 所有的B/S架构也都是C/S架构的
    • 浏览器(browser)是特殊的客户端(client)
    • client(broser) <---> server

这两种架构哪个好

  • C/S 装好之后直接双击就可以使用了
  • B/S 极大的简化了我们使用软件的成本

B/S

  • 更符合现在的使用理念
  • 但是还有很多功能没有实现
  • 在PC端统一了程序的入口
  • 在手机端没有那么喜欢用浏览器
    • 统一入口的软件

mac address

你是谁 我是谁

  • mac地址 唯一标识了一台机器
  • mac地址 说的话 你的mac地址
  • 8C-EC-4B-80-AA-4D

多台机器之间的通信

  • mac : 机器的唯一标识
  • 网卡 : 一个计算机上的硬件 这个硬件出厂的时候就被分配了一个mac地址
  • ip地址 :比mac好记,能够按照区域来区分(区分你在哪一个局域网内)
  • 协议 : 在传输过程中规定位数 顺序等等传输规则的内容
  • 交换机 : 局域网内多台机器之间的通信
  • arp协议 :通过ip地址找到mac地址

局域网概念

  • 路由器 : 能够做局域网与局域网之间的通信
  • 网关ip : 在一台机器对局域网外的地址进行访问的时候使用的出口ip
  • 端口 : 帮助我们找机器上的对应服务 0-65535 惯用的端口号 80,8000之后

qq ---> qq

wechat ---> wechat

web ---> web

子网掩码

  • 192.168.16.13
  • 255.255.0.0
  • 11000000.10101000.00010000.00001101
  • 11111111.11111111.00000000.00000000
  • 11000000.10101000.00010000.00000000 = 192.168.0.0
  • 1&1=1
  • 1&0 0&0 0&1 =0

  • 1&0 = 0

  • 1&1 = 1

  • 0&0 = 0

  • 0&1 = 0

  • 192.168.32.5

  • 255.255.0.0

  • 11000000.10101000.00100000.00000101

  • 11111111.11111111.00000000.00000000

  • 192.168.0.0

ip的保留字段

  • 0.0.0.0-255.255.255.255
  • 10.0.0.0-10.255.255.255
  • 172.16.0.0-172.31.255.255
  • 192.168.0.0-192.168.255.255
  • 127.0.0.1 本地的回环地址 别的人找不到你 只有你自己这台机器能找到你自己
  • 0.0.0.0 全网段地址
  • server : 0.0.0.0:9000

osi七层协议 七层协议 :每层对应的协议\物理设备

  • tcp协议 udp

ip port

  • socket套接字
  • 所有的网络通信的底层都是基于socket做的

2019-04-08-day027-网络编程基础的更多相关文章

  1. Java网络编程和NIO详解开篇:Java网络编程基础

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

  2. C#网络编程基础知识

    C#网络编程基础知识一 1.IPAddress类 用于表示一个IP地址.IPAddress默认构造函数 public IPAddress(long address);一般不用 其中Parse()方法最 ...

  3. iOS开发网络篇—网络编程基础

    iOS开发网络篇—网络编程基础 一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过 ...

  4. Android 网络编程基础之简单聊天程序

    前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...

  5. 服务器编程入门(4)Linux网络编程基础API

      问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字( ...

  6. Java网络编程基础(Netty预备知识)

    今天在家休息,闲来无事,写篇博客,陶冶下情操~~~ =================我是分割线================ 最近在重新学习Java网络编程基础,以便后续进行Netty的学习. 整 ...

  7. 用Netty开发中间件:网络编程基础

    用Netty开发中间件:网络编程基础 <Netty权威指南>在网上的评价不是很高,尤其是第一版,第二版能稍好些?入手后快速翻看了大半本,不免还是想对<Netty权威指南(第二版)&g ...

  8. Linux 高性能服务器编程——Linux网络编程基础API

    问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字(so ...

  9. Python网络编程基础pdf

    Python网络编程基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1VGwGtMSZbE0bSZe-MBl6qA 提取码:mert 复制这段内容后打开百度网盘手 ...

  10. 【网络编程1】网络编程基础-TCP、UDP编程

    网络基础知识 网络模型知识 OSI七层模型:(Open Systems Interconnection Reference Model)开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一个 ...

随机推荐

  1. 『计算机视觉』Mask-RCNN_推断网络其四:FPN和ROIAlign的耦合

    一.模块概述 上节的最后,我们进行了如下操作获取了有限的proposal, # [IMAGES_PER_GPU, num_rois, (y1, x1, y2, x2)] # IMAGES_PER_GP ...

  2. nginx本地缓存

    Nginx 作为Web服务器或者负载均衡器,一般不执行业务逻辑,而是将请求转到后端服务器,比如 Tomcat 或者 php-fpm,后端处理完毕之后将经过 nginx 将数据返回给用户.在请求转发的过 ...

  3. 自用chrome+油猴脚本,使用迅雷下载百度云大文件,一键离线下载

    油猴是有名的火狐浏览器插件(Greasemonkey),当然也有Chrome版本(tampermonkey),甚至IE.Safari.Opera都有……虽然这些插件是由不同的开发者开发出来的,界面也可 ...

  4. 动态BT跳转

    METHOD eh_onzobject_id_link. ***定义 DATA : lv_crmt_object_guid TYPE crmt_object_guid, lv_index TYPE i ...

  5. Space Ant

    Space Ant The most exciting space discovery occurred at the end of the 20th century. In 1999, scient ...

  6. [LeetCode] 98. Validate Binary Search Tree(是否是二叉搜索树) ☆☆☆

    描述 解析 二叉搜索树,其实就是节点n的左孩子所在的树,每个节点都小于节点n. 节点n的右孩子所在的树,每个节点都大于节点n. 定义子树的最大最小值 比如:左孩子要小于父节点:左孩子n的右孩子要大于n ...

  7. 解决QPainter::drawText修改文字方向

    今天在绘制双坐标曲线的时候需要修改y轴文字提示 QPainter的drawText()函数提供了绘制文本的功能. 它有几种重载形式,我们使用了其中的一种,即制定文本的坐标然后绘制 正常我们的文字书写方 ...

  8. java多线程读一个变量需要加锁吗?

    如果只是读操作,没有写操作,则可以不用加锁,此种情形下,建议变量加上final关键字: 如果有写操作,但是变量的写操作跟当前的值无关联,且与其他的变量也无关联,则可考虑变量加上volatile关键字, ...

  9. 创建含有多module的springboot工程(八)

    创建根工程 创建一个maven 工程,其pom文件为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?xml version="1.0" enc ...

  10. C#执行Sql 时,出现“算术运算导致溢出”问题,如何解决?

    昨天在C#执行oracle的sql语句时,总是报错,原先在pl/sql 执行sql语句是可以的,在C#执行就报“算术运算导致溢出”问题 SQL语句 select A.SKU_ID 商品标识,A.COL ...