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發送的內容

相關文章
相關標籤/搜索