第二阶段共享--网络编程

一.C/S架构 : 客户端(client)/服务端(sever)框架

  B/S架构: 浏览器(brower)/服务端(sever)架构

  软件CS架构: 服务端连接到浏览器,QQ,微信,陌陌等

  硬件CS架构: 服务端连接到打印机

二 .网络通信的整个流程   

  广播 : 将接受到的数据发放给管理的电脑,如果不是自己的IP地址,扔掉 ; 否则,执行.

  集线器: 将所有的电脑连通起来

  交换机: 升级版的集线器

  网卡: 接收处理电信号

  Mac 地址: 物理地址 :1C-1B-0D-74-43-9A 前三位厂商编号  后三位生成流水号,Mac是全球唯一的,相当于网络设备的身份证号

  IP地址 : xxxx.xxxx.xxxx.xxxx 划分广播域

  IP地址段 :  192.168.12.0 --- 192.168.12.255 同一ip地址段,称为同一子网,以广播的形式通信.192.168.0.0 -- 192.168.255.255

  子网掩码 :计算是否属于同一网段,同一子网  255.255.255.0

  目标IP地址是:

目标ip地址是:      192.168.12.16     (1and3结果变成10进制就是5)

      1)  11000000.10101000.00001100.00010000

      2)  255.255.255.0

      3)  11111111.11111111.11111111.00000000

      4)  11000000.10101000.00001100.00000000

       5)  192.168.12.0

DHCP协议: 自动获取IP地址

Arp协议: 通过IP地址获取mac地址

域名 : 相当于网站的网址  www.jd.com

DNS服务端: 相当于一个字典{‘www.jd.com’:173.16.49.0}

三.初识socket(重点)

以下 是服务端代码

  1. # 建立一个与用户交流的网页模型
  2. import socket
  3. #创建socket对象,创建了一个手机
  4. server = socket.socket()
  5.  
  6. #给程序设置一个ip地址和端口号,买了个手机卡
  7. ip_port = ('192.168.12.66',8002)
  8.  
  9. #绑定ip地址和端口,插卡
  10. server.bind(ip_port)
  11.  
  12. #监听ip地址和端口,简称开机
  13. server.listen()
  14.  
  15. #等待建立连接, conn是连接通道,addr是客户端的地址 这里会阻塞程序
  16. conn,addr = server.accept()
  17.  
  18. #服务端通过conn连接通道来收发消息,通过recv方法,recv里面的参数是字节(B),1024的意思1024B=1KB
  19. from_client_msg = conn.recv(1024)
  20.  
  21. print('客户说:',from_client_msg.decode('utf-8'))
  22.  
  23. #回复消息:通过send方法,参数必须是字节类型的,
  24. conn.send('约吗'.encode('utf-8'))
  25.  
  26. #关闭通道,关电话,通过close方法
  27. conn.close()
  28. #关闭socket对象,关机
  29. server.close()

以下是客户端代码

  1. #导入socket
  2. import socket
  3. #创建一个socket对象
  4. client = socket.socket()
  5. #找到服务端的ip地址和端口
  6. server_ip_port = ('192.168.12.66',8002)
  7. #连接服务端的应用程序,通过connect方法,参数是服务端的ip地址和端口,打电话
  8. client.connect(server_ip_port)
  9.  
  10. #发消息,用的send方法,但是调用者是client的socket对象
  11. client.send('约吗?'.encode('utf-8'))
  12.  
  13. from_server_msg = client.recv(1024)
  14.  
  15. print('服务端说:',from_server_msg.decode('utf-8'))
  16. client.close()

  

day26 第二阶段共享的更多相关文章

  1. python (大文件下载及进度条展示) 验证客户端链接的合法性,socketserver

    ##########总结########### 文件校验加进度条显示 ####server import os import json import socket import struct impo ...

  2. 【FE前端学习】第二阶段任务-基础

    技能学习部分: 1.需要熟练掌握HTML标签以及CSS各个常用属性. 2.掌握CSS3 常用属性 3.掌握jquery的基本用法,对于JS基本逻辑语句需要熟练掌握 上文 [FE前端学习]第二阶段任务- ...

  3. 【NFS项目实战二】NFS共享数据的时时同步推送备份

    [NFS项目实战二]NFS共享数据的时时同步推送备份 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品, ...

  4. 第二阶段Sprint1

    昨天:进行第二阶段第一次站立会议,讨论冲刺阶段,目标,任务认领 今天:实现视频录制,共享平台的视频下载和上传 遇到的问题:调手机摄像头没问题,共享平台怎么办

  5. Pyhton学习——Day26

    #多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...

  6. 一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.分布式架构下,Session共享有什么方案 2.简述你对RPC.RMI的理解 3.分布式id生成方案 4.分布式锁解决 ...

  7. 伪共享(false sharing),并发编程无声的性能杀手

    在并发编程过程中,我们大部分的焦点都放在如何控制共享变量的访问控制上(代码层面),但是很少人会关注系统硬件及 JVM 底层相关的影响因素.前段时间学习了一个牛X的高性能异步处理框架 Disruptor ...

  8. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  9. iOS开发之App间账号共享与SDK封装

    上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...

随机推荐

  1. 免费的剪贴板工具Ditto安装与使用

    下载地址:https://sourceforge.net/projects/ditto-cp 直接安装,选择好安装的位置,一直选择默认的选项就行

  2. joomla 的语言翻译

    最近装了留言板组件 phocaguestbook,发觉没有中文翻译. 于是在 components\com_phocaguestbook\language\en-GB 找到了英文的文件. 依葫芦画瓢, ...

  3. ADO.NET连接池机制

    为什么需要连接池 剖析一个技术第一个要问的是,这项技术为什么存在. 对于每一个到SQL Server的连接,都需要经历TCP/IP协议的三次握手,身份认证,在SQL Server里建立连接,分配资源等 ...

  4. 雷林鹏分享:使用 CSS 显示 XML

    使用 CSS 显示 XML 通过使用 CSS(Cascading Style Sheets 层叠样式表),您可以添加显示信息到 XML 文档中. 使用 CSS 显示您的 XML? 使用 CSS 来格式 ...

  5. 用C#实现多种方式播放Wav声音

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. You Don't Know JS: this & Object Prototypes( 第5章 Prototypes)

    qu上章提到过[[prototype]] chain, 本章详细分析 ⚠️所有试图模仿类复制的行为,如上章提到的mixins的变种,完全规避了[[Prototype]] chain机制,本章会谈到这方 ...

  7. apply、call

    call(),apply() 1.每个函数都包含两个非继承而来的方法:call()和apply() 2.在特定的作用域内调用函数,等于设置函数体内的this对象,以扩充函数赖以运行的作用域 3.app ...

  8. android-------- 常用且应该学习的框架

    今天来分享一下一些常用的库,在Github 上 star数也是很高的,开发中也是很常用的: 简单的分享一下,一起学习. http://www.xiufm.com/blog-1-944.html 框架名 ...

  9. Spring Batch 基本的批处理指导原则

    下面是一些关键的指导原则,可以在构批量处理解决方案可以参考: 请记住,通常皮脸处理体系结构将会影响在线应用的体系结构,同时反过来也是一样的.在你为批量任务和在线应用进行设计架构和环境的时候请尽可能的使 ...

  10. JS代码判断IE6,IE7,IE8,IE9

    做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码! 有一种代码: <script type="text/javasc ...