一. ***

C/S架构:客户端(client)/服务端(server)架构,

B/S架构:浏览器(browser) / 服务端(server)架构

软件cs架构:浏览器,qq,微信,陌陌等等

硬件cs架构:打印机

二. 网络通信的整个流程  ***

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

交换机:升级版的集线器

网卡:接收处理电信号

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

姑娘的mac地址:约吗?

Ip地址  IPv4 地址: 192.168.12.11  划分广播域

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

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

目标ip地址是:192.168.12.16

11000000.10101000.00001100.00010000

255.255.255.0

11111111.11111111.11111111.00000000

11000000.10101000.00001100.00000000

192.168.12.0

DHCP协议:自动获取IP地址

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

域名:www.jd.com

DNS服务端:{‘www.jd.com’:173.16.49.0}

三. 初识socket  *****

服务器端代码

import socket#导入socket模块

#创建socket对象,创建了一个手机server = socket.socket()

#给程序设置一个ip地址和端口号,买了个手机卡ip_port = ('192.168.12.70', 8002)

#绑定ip地址和端口,插卡server.bind(ip_port)

#监听ip地址和端口,简称开机server.listen()

print('111111')#等待建立连接, conn是连接通道,addr是客户端的地址,阻塞程序conn, addr = server.accept()

print('222222')

#服务端通过conn连接通道来收发消息,通过recv方法,recv里面的参数是字节(B),1024的意思1024B=1KBfrom_client_msg = conn.recv(1024)

print('高旺说:', from_client_msg.decode('utf-8'))

to_client_msg = input('高旺的女朋友说:')

#回复消息:通过send方法,参数必须是字节类型的,conn.send(to_client_msg.encode('utf-8'))

#关闭通道,关电话,通过close方法conn.close()#关闭socket对象,关机server.close()

客户端代码

#导入socket
import socket
#创建一个socket对象
client = socket.socket()
#找到服务端的ip地址和端口
server_ip_port = ('192.168.12.11',8002)
#连接服务端的应用程序,通过connect方法,参数是服务端的ip地址和端口,打电话
client.connect(server_ip_port)

to_server_msg = input('高旺说:')
#发消息,用的send方法,但是调用者是client的socket对象
client.send(to_server_msg.encode('utf-8'))

from_server_msg = client.recv(1024)

print('高旺的女朋友说:',from_server_msg.decode('utf-8'))
client.close()

day 26 网络通讯流程 初识socke的更多相关文章

  1. DIOCP网络通讯流程

    DIOCP 运作核心探密   原文连接: http://blog.qdac.cc/?p=2362 原作者: BB 天地弦的DIOCP早已经广为人知了,有很多的同学都用上了它,甚至各种变异.修改版本也出 ...

  2. 基于TCP协议的网络通讯流程

    不多说了,先上个图: 从上面的图中可以看出来,基于TCP协议进行通讯可以大致分成以下几个阶段: 1. 首先是在服务器端, TCP Sever调用socket(), bind(), listen()完成 ...

  3. day26 网络通讯的整个流程

    一.网络通信原理 1.  互联网的本质就是一系列的网络协议 2.  互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 各层的功能简述: [1]物理层:主要定义物理设备标准,如网 ...

  4. Windows 网络通讯开发

    Windows 网络通讯开发 一.Windows网络开发API 由于C++标准库中没有网络库,所以进行网络开发的时候要调用系统API.Windows通讯开发API包括以下几个基本函数及成员类型: 1. ...

  5. 文档:网络通讯包结构(crc校验,加解密)

    一直想把这个流程整理一下. 包结构: 包 对(datacrc+protoID+dataSize)组成的byte[] 进行crc计算而得到 对(数据内容)进行crc计算而得到 协议号 数据内容的字节长度 ...

  6. Socket网络通讯开发总结之:Java 与 C进行Socket通讯 + [备忘] Java和C之间的通讯

    Socket网络通讯开发总结之:Java 与 C进行Socket通讯 http://blog.sina.com.cn/s/blog_55934df80100i55l.html (2010-04-08 ...

  7. zigbee学习:示例程序SampleApp中通讯流程

    zigbee学习:示例程序SampleApp中通讯流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考链接: http://wjf88223.bl ...

  8. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)

    在程序设计中,涉及数据存储和数据交换的时候,不管是B/S还是C/S模式,都有这样一个概念:数据库服务器.这要求一台性能和配置都比较好的主机作为服务器,以满足数目众多的客户端进行频繁访问.但是对于一些数 ...

  9. tcp/ip网络通讯安全加密方法

    tcp/ip网络通讯安全是一个广受关注的话题,现在也有一些基于tcp/ip加密技术标准如SSL,TLS等.但很多时候编写一些简单的网络通讯把这标准加密应用添加进来乎一下子把程序变得复杂了,而实现自己的 ...

随机推荐

  1. 7series 逻辑单元理解(更新中)

    7series 逻辑单元理解 ug768和ug799文档介绍了7系列芯片中包含的基本逻辑单元,对其中常用的单元,进行下分析. 1.IOBUF单元 (1)真值表 (2)用途 the  design  e ...

  2. 使用kafka和zookeeper 构建分布式编译环境

    1:在每台机器上安装jdk, 脚本代码如下: 每一个机器上下载jdk,zookeeper,kafka 链接:https://www.oracle.com/technetwork/java/javase ...

  3. pytest启动浏览器,失败用例截图

    1.conftest.py # coding:utf- from selenium import webdriver import pytest driver = None @pytest.mark. ...

  4. day 31 udp 协议SOCK_DGRAM

    udp 服务端引用socket=类型,协议绑定地址 和 端口while 循环收到 data addr = 服务.recvfrom(1024)发送 服务.sendto(data,addr(ip 端口)) ...

  5. Unity3D使用OpenFileDialog后崩溃

    http://ask.unitymanual.com/question/24922 找了很久,原来是我的dll文件引错了,名字都一样,应该引用unity安装目录下的System.Window.Form

  6. ChinaCock界面控件介绍-CCGridPictureEditor

    CCGridPictureEditor如其名,网格图片编辑控件,实现利用一个网格来显示多张图片的缩略图,这是一个非常实用的控件,实现类似微信朋友圈中发布多张图片的功能. 在没有这个控件之前,我都是用D ...

  7. placeholder兼容性问题

    由于placeholder是H5新属性,IE9及以下都不支持 解决办法:给input添加一个背景图,背景图里面添加placeholder内容,当焦点落在输入框中,背景图隐藏,即可做出类似的效果 代码: ...

  8. 绕过Snoopy的记录功能

    不讲原理,感兴趣请看http://blog.rchapman.org/posts/Bypassing_snoopy_logging/,这个只适合老版本内核的Linux 查看是否有snoopy加载了 l ...

  9. CentOS安装JDK9

    1.使用XShell将下载好的jdk-9.0.1_linux-x64_bin.tar.gz包上传到/opt/下 2.解压文件 $ tar -zxvf jdk-9.0.1_linux-x64_bin.t ...

  10. POJ 1065 Wooden Sticks (贪心)

    There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The st ...