python 簡單的socket應用(針對TCP)

2021-08-28 07:28:51 字數 1808 閱讀 3004

出處:

可以總結為以下五個步驟:

1.建立socket套接字

2.繫結ip和port

3.listen使套接字變為被動連線

4.accept等待客戶端連線

5.recv/send接受和傳送資料

先做一些準備工作:

import socket

server = socket.socket(family,type):建立連線

family:協議族,絕大多數情況使用預設的socket.af_inet

type:tcp使用socket.sock_stream,udp使用socket.sock_dgram

listen(backlog):將sever設定為監聽狀態

backlog:最多允許多少個連線連線到server,不特別設定的話將自動設定乙個合理的連線數

accept():準備接收client端傳送的資料

返回兩個內容,sock和addr

sock:包含socket的資訊

addr:包含client的ip位址和埠號的元組

準備工作完成,可以傳送和接收client的資訊

注意:要用accept()返回的sock來傳送和接收資訊

sock.recv(buffersize):用於接受client傳送的資料

buffersize:每次可傳遞的最大位元組數

sock.send(data):向client傳送資料

data:資料內容

注意:傳送/接收資料時要先轉碼/解碼,不然會報錯

encode(),decode()

client和server基本一樣,唯一的區別就是有個connect,比較簡單

建立socket

client.connect(addr):連線至sever

addr:元組,包含server的ip位址和埠號

注意轉碼和解碼

下面是源**:

server.py

import socket

server = socket.socket(family=socket.af_inet,type=socket.sock_stream)

server.bind(('192.168.44.1',8601))

server.listen()

print("successful")

sock,address = server.accept()

print(str(sock),address)

while true:

send_data = input("傳送內容:")

sock.send(send_data.encode('utf-8'))

recv_data = sock.recv(1024)

print(recv_data.decode('utf-8'))

client.py

import socket

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

client.connect(('192.168.44.1',8601))

while true:

recv_data = client.recv(1024)

print("sever:",recv_data.decode('utf-8'))

send_data = input("傳送:")

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

Python簡單的SOCKET程式設計

python是乙個強大的網路程式設計工具。大家都知道,在網路程式設計中的乙個基本主件就是套接字 socket 套接字到底是什麼呢?可以這樣說,就是兩個程式之間的資訊通道而已。比如兩個人打 必須建立有線或者無線的道路來進行通訊。程式可能分布在不同的計算機上,兩個人也不一定時時在一起。所以程式與程式之間...

python中的socket簡單使用

伺服器端套接字 客戶端套接字 公共用途的套接字函式 服務端我們可以使用 socket 模組的 socket 函式來建立乙個 socket 物件。然後通過呼叫 bind hostname,port 函式來指定服務的埠。接著,呼叫 socket 物件的 accept 方法,等待客戶端的連線,返回 con...

基於python的socket簡單實現

socket被翻譯為 套接字 它是計算機之間進行通訊的一種約定或一種方式。socket的生命週期如下 1.將socket與位址和埠進行繫結 2.開啟服務端,等待連線 3.建立連線 4.傳送和接收資料 5.關閉連線,關閉服務端 簡單來說,就是開啟,建立連線,傳輸資料,關部的過程 具體 如下 與瀏覽器通...