day 26 C\S架構,網絡通訊以及socket

一 . C\S架構小程序

        C是指client客戶端,S是指服務端server,兩個在一塊兒就是客戶端,服務端架構:好比像京東,淘寶,微信,QQ瀏覽器

        還有B\S架構,B是browser瀏覽器,S仍是服務端server,有個統一接口,好比微信裏的小程序,相似於進網頁瀏覽的服務器

        還有硬件C\S架構:就是打印機微信

二 . 網絡通訊以及流程網絡

       首先,咱們網絡想上網,必須具有1.網線(傳輸電信號)2.集線器(將全部來凝結到集線器的網絡設備連通起來)3.交換機(架構

升級版的集線器 ) 4.網卡(接受電信號)  5.MAC地址(也稱物理地址,8C-EC-4B-88-B9-C9)前三位廠商編號,後三位生產流水號socket

6.與一臺電腦與一臺交換機進行單播,一臺交換機與多臺電腦進行廣播7.IP地址:4個點分十進制 8.路由器:用來轉發消息,那麼,路由器用來轉發消息的時候,它若是像發送消息的另一臺路由器相隔距離太遠,由此就出現了路由協議,它是來計算路由轉發消息的最優路徑。性能

        說了這麼多,若是說我想從我這臺電腦訪問到京東的服務器,是怎麼運做的呢?code

        首先,我這臺電腦得單播到交換機,交換機能夠鏈接多態電腦,發給多臺電腦叫作廣播,這個區域叫作子網,交換機而後經過子網掩碼來計算是否網段,而後經過RNS服務器來找域名(也就是網址)對應的Ip地址,多臺路由器之間有路由協議,找到最佳路徑,經過端口地址反射肯定電腦上的惟一的一個程序的服務器,就完成了網絡通訊。server

三 . 初始socket

       建立兩個py文件,一個client客戶端,一個server服務端      

server服務端代碼:

import socket

#實例化socket對象
server = socket.socket() #建立了一部手機

ip_port = ('192.168.15.46',8001) #買個電話卡

#綁定IP地址和端口
server.bind(ip_port) #插卡

#監聽,
server.listen() #開機
#等待客戶端鏈接
print(111111)
conn,addr = server.accept() #等別人的電話,阻塞

print(222222)
print(conn)
print(addr)
#發送消息
# conn.send(b'leihao') #必須是bytes類型的數據

while 1:
server_msg = input('王斌>>>>')

conn.send(server_msg.encode('utf-8')) #必須是bytes類型的數據

#接受消息
from_client_msg = conn.recv(1024) #1024,一次性可以接受的消息大小1024B

print('來自俊豪妹的消息',from_client_msg.decode('utf-8'))

# conn.send(b'gun')
#掛電話,關閉通道
conn.close()
#關機,關閉socket
server.close()

 

客戶端:

import socket
client = socket.socket() #
#服務端的ip地址和端口
server_ip_port = ('192.168.15.46',8001)
#鏈接服務端的應用程序
client.connect(server_ip_port)

while 1:
from_server_msg1 = client.recv(1024) #阻塞
print('來自王斌消息:',from_server_msg1.decode('utf-8'))
client_msg = input('俊豪妹>>>')
client.send(client_msg.encode('utf-8'))

from_server_msg = client.recv(1024)

print('來自服務端的消息:',from_server_msg)client.close()

相關文章
相關標籤/搜索