客戶端伺服器:
開發架構:
概念:實體地址
檢視方式:
埠號網路協議
網路協議就是為了能讓計算機網路中進行資料交換而建立的規則、標準
網際網路上有上百種協議,但是最重要的兩個協議是 tcp 協議和 ip 協議,因此我們將上百種協議統稱為 tcp/ip 協議族。tcp/ip協議族,根據協議的功能的不同抽象成了 4 層
傳輸 網路
資料鏈路
tcp(transmission control protocol)
資料安全,速度略低。分為客戶端和服務端
tcp 的三次握手和 4 次揮手
四次揮手
udp(user datagram protocol)
面向無連線,資料不安全,速度快。不區分客戶端與服務端
tcp與udp的對比
tcp提供的是面向連線、可靠的服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個 tcp 連線,之後才能傳輸資料。tcp 提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。udp–是乙個簡單的不可靠的運輸層協議。它只是把應用程式傳給 ip 層的資料報傳送出去,但是並不能保證它們能到達目的地。由於udp在傳輸資料報前不用在客戶和伺服器之間建立乙個連線,且沒有超時重發等機制,故而傳輸速度很快
osi模型(open system interconnect reference model)
osi 模型是國際標準化組織(iso)制定的乙個用於計算機或通訊系統間互聯的標準體系,一般稱為 osi 參考模型或七層模型- -
socket的使用
#建立套接字的方式
import socket
#目的:使用socket程式設計 通過網路實現程序間的通訊
#udp程式設計
udpsocket = socket.socket(socket.af_inet,socket.sock_dgram)
#tcp程式設計
tcpsocket = socket.socket(socket.af_inet,socket.sock_stream)
#引數說明:af_inet(ipv4協議用於 internet 程序間通訊)
#socket.sock_dgram 資料報套接字, 用於udp協議
#socket.sock_stream 資料報套接字, 用於tcp協議
from socket import *#建立乙個udp socket物件 udpsocket = socket(af_inet,sock_dgram)
#優化** addr = (『10.10.24.251』,9999) while true:
message = input(「請輸入您要傳送的資訊:」)
udpsocket.sendto(message.encode(『utf-8』), addr)
#用完socket後物件關閉 udpsocket.close()
from socket import *udpsocket = socket(af_inet,sock_dgram)
#給socket物件繫結乙個ip位址和埠號
udpsocket.bind((『10.10.24.251』,9999))
while true:
# 接收資訊
# recvfrom(1024):代表能接收1024個位元組的資訊
message = udpsocket.recvfrom(1024)
# 檢視接收到的資訊的格式:返回的是乙個元組 (訊息內容,(傳送方的ip,傳送方的埠號))
# 如:(b』fffffff』, (『192.168.2.119』, 8989))
# print(message)
# 利用decode(指定編碼字符集型別)方法來進行解碼
print(message[0].decode(『utf-8』))
#關閉socket物件
udpsocket.close()
tcp
python中的網路程式設計
python的網路程式設計基於socket 套接字 基本概念 socket通常也稱作 套接字 用於描述 ip位址和埠,是乙個通訊鏈的控制代碼,應用程式通常通過 套接字 向網路發出請求或者應答網路請求。socket起源於 unix 而unix linux 基本哲學之一就是 一切皆檔案 對於檔案用 開啟...
實用 python中的網路程式設計
import threading import time import socket import logging logging.basicconfig format thread s threadname s message s level logging.info tcp server soc...
python中的socket網路程式設計 二
python中的socket網路程式設計 二 在python中的socket網路程式設計 一 一文中,我們介紹了客戶端的主要功能。下面我們看下服務端。建立socket 首先要建立 socket,用 python 中 socket 模組的函式 socket 就可以完成 coding utf 8 imp...