python之路-day26 初探网络编程

 

 

1、C\S 架构  client server浏览器

  软件c\s架构:客户端\服务端架构:京东,淘宝,今日头条,qq,微信安全

      B\S架构:浏览器(browser)\服务端>>>统一接口微信

  硬件C\S架构:打印机网络

 

2、网络通讯整个流程架构

  网线:传输电信号socket

  集线器:将全部链接到集线器的网络设备联通起来spa

  交换机:升级版的集线器code

  网卡:接收电信号server

  MAC地址:即物理地址,8C-EC-4B-88-B9-X9  # 前三位厂商编号,后三位生产流水号 对象

  单播:单台pc向交换机发送消息(包含目标ip)

  广播:交换机将消息广播,对应目的ip的pc接收消息,其余pc丢弃消息 

  广播风暴:网络拥堵,信息不安全

  ip 地址:

    ipv4  地址:192.168.15.46   # 4个点分十进制数字

    做用,划分广播域,一个网段理论上能够划分256个地址,0-255

  DHCP:自动分配ip地址

  Arp表:保存着ip地址和mac地址对应关系

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

  子网掩码:用于计算两个ip是不是属于同一网段:

    255.255.255.0

      源ip地址:192.168.15.46

          11000000.10101000.00001111.00101110

          11111111.11111111.11111111.00000000

          11000000.10101000.00001111.00000000 #192.168.15.0

          目标的ip:192.168.16.30  # 192.168.16.0

  路由器:转发消息

  路由协议:计算路由转发消息的最优路径

  

  端口号:0-65535,肯定电脑上的应用程序

  ip地址+端口 = 肯定某个电脑上的某个应用程序

 

 

 3、初识socket

 1 import socket
 2 #建立一个socket对象
 3 server = socket.socket()  #至关于建立了一部电话
 4 ip_port = ('192.168.111.1',8001) #建立一个电话卡
 5 server.bind(ip_port) #插上电话卡
 6 server.listen(5) #监听着电话,我能监听5个,接到一个电话以后,后面还能有四我的给我打电话,可是后面这四我的都要排队等着,等着我第一个电话挂掉,再来第6个的时候,第六我的的手机会报错
 7 print('11111')
 8 #等着别人给我打电话,打来电话的时候,我就拿到了和对方的这个连线通道conn和对方的电话号码addr
 9 conn,addr = server.accept()  #阻塞住,一直等到有人链接我,链接以后获得一个元祖,里面是连线通道conn和对方的地址(ip+端口)
10 print('22222')
11 print(conn)
12 print('>>>>>>>>>',addr)
13 while True:
14     from_client_data = conn.recv(1024) #服务端必须经过二者之间的链接通道来收消息
15     from_client_data = from_client_data.decode('utf-8')
16     print(from_client_data)
17     if from_client_data == 'bye':
18         break
19     server_input = input('明威说>>>>:')
20     conn.send(server_input.encode('utf-8'))
21     if server_input == 'bye':
22         break
23 conn.close() #挂电话
24 server.close() #关手机
 1 import socket
 2 #建立一个socket对象
 3 server = socket.socket()  #至关于建立了一部电话
 4 ip_port = ('192.168.111.1',8001) #建立一个电话卡
 5 server.bind(ip_port) #插上电话卡
 6 server.listen(5) #监听着电话,我能监听5个,接到一个电话以后,后面还能有四我的给我打电话,可是后面这四我的都要排队等着,等着我第一个电话挂掉,再来第6个的时候,第六我的的手机会报错
 7 print('11111')
 8 #等着别人给我打电话,打来电话的时候,我就拿到了和对方的这个连线通道conn和对方的电话号码addr
 9 conn,addr = server.accept()  #阻塞住,一直等到有人链接我,链接以后获得一个元祖,里面是连线通道conn和对方的地址(ip+端口)
10 print('22222')
11 print(conn)
12 print('>>>>>>>>>',addr)
13 while True:
14     from_client_data = conn.recv(1024) #服务端必须经过二者之间的链接通道来收消息
15     from_client_data = from_client_data.decode('utf-8')
16     print(from_client_data)
17     if from_client_data == 'bye':
18         break
19     server_input = input('明威说>>>>:')
20     conn.send(server_input.encode('utf-8'))
21     if server_input == 'bye':
22         break
23 conn.close() #挂电话
24 server.close() #关手机

注意:先运行server,而后再运行client,而后你会发现client这个文件再输出台的地方让你输入内容,你输入一个内容而后回车,你会发现server那边的控制台就输出了以client发送的内容

相关文章
相关标签/搜索