91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

孟村| 城口县| 靖安县| 柘荣县| 望奎县| 微博| 长顺县| 平舆县| 临颍县| 虎林市| 东乡族自治县| 灌云县| 平和县| 昌江| 涿州市| 英山县| 博湖县| 出国| 庆安县| 宜昌市| 日照市| 洪湖市| 永城市| 建宁县| 石城县| 偏关县| 长汀县| 潞城市| 奇台县| 昭通市| 内乡县| 东港市| 黔西县| 莱芜市| 彭山县| 锡林郭勒盟| 崇文区| 太康县| 织金县| 吕梁市| 涡阳县|