中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中如何實現基于TCP協議的套接字編程

發布時間:2021-08-12 14:15:37 來源:億速云 閱讀:182 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python中如何實現基于TCP協議的套接字編程,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

基于TCP協議的套接字編程

實現電話溝通為例,這里傳遞的是字符,可以自己嘗試去發送一個文件

# 服務端
import socket
# 1. 符合TCP協議的手機
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # TCP
# 2. 綁定手機號 一個服務器,我們自己的電腦作為服務器的話,用自己的IP地址
server.bind(('127.0.0.1',8000)) # 127.0.0.1 代表本地
# server.bind(('192.168.11.251',8000)) 
server.listen(5) # 半連接池 可以同時接收5個客戶端
# 3. 等待客戶端連接
print('start...')
# 鏈接循環
while True:
# 通信循環
conn,client_addr = server.accept()
while True:
try:
# 4. 收到信息 receive
data = conn.recv(1024) # 每次接收多少字節,如果改為10,客戶端輸入dir,(可以在cmd中輸入 dir,看看會得到什么) ,會出現什么情況呢,下次的博客會講到粘包問題,以及如何處理粘包問題
print(data)
# 5. 回消息
conn.send(data.upper())
except ConnectionAbortedError:
continue
except ConnectionResetError:
break
# 客戶端1
import socket
# 1. 創建符合TCP協議的手機
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 2. 撥號
client.connect(('127.0.0.1',8000))
while True:
msg = input('please enter your msg') # dir
# 3. 發送消息
client.send(msg.encode('utf8'))
# 4. 接收消息
data = client.recv(1024)
print(data)
# 客戶端2
import socket
# 1. 創建符合TCP協議的手機
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 2. 撥號
client.connect(('127.0.0.1',8000))
# msg = input('please enter your msg>>>')
# 3. 發送消息
client.send('hello'.encode('utf8'))
client.send('world'.encode('utf8'))
# 4. 接收信息
data = client.recv(1024)
print(data)

模擬ssh遠程執行命令(linux系統)

# ssh服務端
import socket
import subprocess
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(('192.168.11.251',8000)) # 這是我的機子,客戶端可以是其他人的機子
server.listen(5)
print('start...')
while True:
conn,cient_addr = server.accept()
print(client_addr) # 打印出的是其他人機子的IP
while True:
try:
cmd = conn.recv(1024) # dir
print(cmd)
# 幫你執行cmd命令,然后把執行結果保存到管道里
pipeline = subprocess.Popen(cmd.decode('utf8'),
shell = True,
stderr = subprocess.PIPE, # std 標準
stdout = subprocess.PIPE)
stderr = pipeline.stderr.read()
stdout = pipeline.stdout.read()
conn.send(stderr)
conn.send(stdout)
except ConnectionResetError:
break
# ssh客戶端
import socket
# 1.創建符合TCP協議的手機
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 2. 撥號
client.connect(('192.168.11.210',8000))
while True:
msg = input('please enter your msg') # dir
# 3. 發送消息
client.send(msg.encode('utf8'))
# 4. 接收消息
data = client.recv(10)
print(data.decode('gbk')) # 在mac電腦上可能是'utf8'

關于“python中如何實現基于TCP協議的套接字編程”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節
推薦閱讀:
  1. TCP/IP協議
  2. TCP協議小結

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴桥县| 铜鼓县| 宝清县| 梅州市| 浮梁县| 龙川县| 凤翔县| 萨迦县| 衡水市| 曲松县| 泸西县| 开鲁县| 敦化市| 常熟市| 霍州市| 灵台县| 梅州市| 白山市| 壤塘县| 封丘县| 西贡区| 安仁县| 阿合奇县| 柞水县| 利津县| 石嘴山市| 婺源县| 景谷| 尉氏县| 英吉沙县| 寿阳县| 聊城市| 拉萨市| 大港区| 桦南县| 舟山市| 章丘市| 鲁山县| 依安县| 林西县| 若羌县|