Python網路程式設計

2021-09-29 17:07:24 字數 2941 閱讀 3013

套接字(socket) 是一種通訊機制,憑藉這種機制,客戶/伺服器系統的開發工作既可以在本地單機上進行,也可以跨網路進行,linux提供的功能(列印服務,ftp等)通常時通過套接字來進行通訊的,套接字的建立和使用與管道有區別,因為套接字明確的客戶和伺服器分出來,套接字可以實現將多個客戶連線到乙個伺服器

其中最重要的協議就是 tcp,udp協議

tcp 是一種面向連線的、可靠的、基於位元組流的傳輸層協議。可靠體現在他的重發和校驗機制

udp時一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務

通訊:資訊的傳遞,分為服務端和客戶端

就像公司前台,他不會主動找你,他會在那等你

服務端通常會保持被動阻塞式的接收,等待客戶端前來訪問

客戶端通過ip和埠主動訪問服務端,二者後見通訊通道,實現資訊傳輸

單工通訊,通訊雙方只有一條通道,且身份不可逆。

比如對講機,一方說話,另一方只能接受不能傳送

半雙工通訊,通訊雙方只有一條通道,但通訊身份可逆

全雙工通訊,通訊雙方有多條通道,且身份可逆

ps:小範圍的丟包,不會影響通訊的質量,這叫可容忍誤位元速率

需求描述

附上**

分別是recv.py和client.py代表客戶端和服務端。執行以break結束,兩端都需要break來結束。因為要break來結束socket介面,所以在執行過程中只要出錯了,就必須關閉埠服務再開啟,來重置socket。我是重啟來解決的- -。

#client.py

**import socket

print

("i am client"

)sock = socket.socket(socket.af_inet,socket.sock_stream)

sock.connect(

("127.0.0.1"

,8000))

while

true

: recv = sock.recv(

512)

.decode(

)print

(recv)

if recv ==

"break"

:break

senddata =

input

("-->"

).encode(

) sock.send(senddata)

if senddata ==

"break"

:break

sock.close(

)**

#rece.py

import socket

print

("i am server"

)sock = socket.socket(socket.af_inet,socket.sock_stream)

sock.bind(

("127.0.0.1"

,8000))

sock.listen(5)

con,add = sock.accept(

)print

("%s:%s is connect "

%add)

while

true

: senddata =

input

("-->"

).encode(

) con.send(senddata)

#傳送需要的是位元組

if senddata ==

"break"

.encode():

break

recv = con.recv(

512)

#單次接收的大小 位元組

print

(recv.decode())

if recv ==

"break"

:break

sock.close(

)

#這是對編寫**中用到的socket方法的介紹,是基礎版的接收端。

import socket

print

("i am server"

)#建立socket物件

sock = socket.socket(socket.af_inet,socket.sock_stream)

#scoket family socket族

#af_inet ipv4

#af_inet ipv6

#af_unix linux系統間資料傳輸

#socket type

#sock_stream tcp

#sock_dgram udp

sock.bind(

("127.0.0.1"

,8000))

#雙元素元組

#元素一 ip

#元素二 埠 數字

sock.listen(5)

#監聽佇列長度

#接收con,add = sock.accept(

)#con 通訊物件,也是乙個socket物件

#add 位址,身份

print

(add)

#傳送con.send(

"hello world"

.encode())

#傳送需要的是位元組

recv = con.recv(

512)

#單次接收的大小 位元組

sock.close(

)#

python網路程式設計 TCP網路程式設計

tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...

python 網路程式設計

今天晚上學習了一下python的網路程式設計,實現了client向server傳送資料,server反饋資訊 python 3.3 版本 server from socket import class tcpserver object def init self,serverport self.se...

python網路程式設計

網路通訊是計算機之間的程序之間的通訊。tcp程式設計 tcp連線建立是雙向通道,客戶端與服務端都可以給對方傳送資料。建立tcp連線時,主動發起連線的叫客戶端,被動響應連線的叫服務端。建立乙個tcp的socket連線 用socket family,type 建立套接字獲得socket物件。family...