python 網路程式設計之socket

2022-08-01 02:03:08 字數 2178 閱讀 7798

cs架構 客戶端服務端架構

服務端:提供服務的

客戶端:享受服務的

bs架構:瀏覽器和服務端

網路通訊流程:

集線器:將所有連線上它的電腦全部聯通起來

交換機:公升級版的集線器

網絡卡:接收處理電訊號

廣播 單播

廣播風暴

作用:劃分廣播域

子網掩碼:計算ip位址段,或者判斷ip位址是否屬於同一位址段

dhcp協議:自動獲取ip位址

dns:網域名稱解析

arp協議:通過ip位址獲取mac,因為ip位址不固定,mac是全球唯一的

路由器:**訊息,管理內網

路由協議:計算路由**的最優路徑

埠:標示電腦上某個應用程式

ip位址+埠 = 能夠唯一鎖定一台電腦和這個電腦上的某個應用程式

閘道器:把關用的,意思就說所有對外的請求都要經過閘道器

nat技術:網路位址轉換,內網ip位址轉換為公網或者說外網的ip位址

a.硬體c\s架構:印表機。

不管哪個架構,他們都要進行網路通訊,基本都要用socket,我們學習socekt就是為了完成c\s架構專案的開發

# 客戶端

import socket

# 建立socket物件

client = socket.socket()

# 找到伺服器端口,ip位址要用字串,埠要用int 一般在8000以後

server_ip_port = ('192.168.12.56',8001)

# 連線服務端的應用程式,通過connect方法,引數是服務端的ip位址和埠

client.connect(server_ip_port)

while 1:

to_server_msg = input('說給服務端聽:')

print('*****==輸入q退出*****==')

if to_server_msg.upper() == 'q':

client.send(to_server_msg.encode('utf-8')) # 需要把q停止的資訊傳送給服務端,服務端收到才能關閉服務端的管道

break

else:

# 發訊息,用的是send方法,裡面應該裝bytes 需要把中文編碼

client.send(to_server_msg.encode('utf-8'))

# 服務端通過conn連線通道來收發訊息,通過recv方法,recv裡面的引數是位元組(b),1024的意思1024b=1kb

from_server_msg = client.recv(1024) # receive

# 把bytes解碼成中文

print('服務端返回的話:',from_server_msg.decode('utf-8'))

client.close()

# 服務端

import socket

# 建立socket物件

server = socket.socket()

# 給程式設定乙個ip位址和埠號

ip_port = ('192.168.12.56',8001)

# 繫結ip位址和埠

server.bind(ip_port)

# 監聽ip位址和埠,括號裡面什麼都不用寫(連線的客戶端沒有上限),也可以填數字,填幾次等待著幾個客戶端

server.listen(3)

print('====開始建立連線====')

# 等待建立連線,conn是連線通道,address是客戶端的位址,(阻塞程式)

while 1:

conn,addr = server.accept()

while 1:

# 服務端通過conn連線通道來收發訊息,通過recv方法,recv裡面的引數是位元組(b),1024的意思1024b=1kb

from_client_msg = conn.recv(1024)

print('客戶端發出:', from_client_msg.decode('utf-8'))

to_client_msg = input('回覆客戶端的資訊:')

conn.send(to_client_msg.encode('utf-8'))

# 關閉通道

conn.close()

linux socket網路程式設計之socket屬性

1.函式用法 include include int getsockopt int sockfd,int level,int optname,void optval,socklen t optlen 函式用於獲得某個套接字的屬性 int setsockopt int sockfd,int level...

網路程式設計 Python網路程式設計詳解socket

1 伺服器就是一系列硬體或軟體,為乙個或多個客戶端 服務的使用者 提供所需的 服務 它存在唯一目的就是等待客戶端的請求,並響應它們 提供服務 然後等待更多請求。2 客戶端 伺服器架構既可以應用於計算機硬體,也可以應用於計算機軟體。3 在伺服器響應客戶端之前,首先會建立乙個通訊節點,它能夠使伺服器監聽...

Python網路程式設計之UDP

udp處理資料報,是一種無連線的協議 伺服器端 server socket.socket socket.af inet,socket.sock dgram 繫結ip server.bind 192.168.1.104 221 while true 接收 data,address server.rec...