亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python 基于TCP協(xié)議的套接字編程詳解

系統(tǒng) 1523 0

基于TCP協(xié)議的套接字編程

實(shí)現(xiàn)電話溝通為例,這里傳遞的是字符,可以自己嘗試去發(fā)送一個(gè)文件

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

模擬ssh遠(yuǎn)程執(zhí)行命令(linux系統(tǒng))

            
# ssh服務(wù)端
import socket
import subprocess
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(('192.168.11.251',8000)) # 這是我的機(jī)子,客戶端可以是其他人的機(jī)子
server.listen(5)
print('start...')
while True:
conn,cient_addr = server.accept()
print(client_addr) # 打印出的是其他人機(jī)子的IP
while True:
try:
cmd = conn.recv(1024) # dir
print(cmd)
# 幫你執(zhí)行cmd命令,然后把執(zhí)行結(jié)果保存到管道里
pipeline = subprocess.Popen(cmd.decode('utf8'),
shell = True,
stderr = subprocess.PIPE, # std 標(biāo)準(zhǔn)
stdout = subprocess.PIPE)
stderr = pipeline.stderr.read()
stdout = pipeline.stdout.read()
conn.send(stderr)
conn.send(stdout)
except ConnectionResetError:
break
          
            
# ssh客戶端
import socket
# 1.創(chuàng)建符合TCP協(xié)議的手機(jī)
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. 發(fā)送消息
client.send(msg.encode('utf8'))
# 4. 接收消息
data = client.recv(10)
print(data.decode('gbk')) # 在mac電腦上可能是'utf8'
          

學(xué)習(xí)最有效的方法一定是有輸入,一定要輸出,這樣學(xué)的東西才能真正得有用

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国内精品影院久久久久 | 日本一级毛片2021免费 | 成年女人免费观看视频 | 欧美日韩亚毛片免费观看 | 久久免费国产 | 亚洲欧美日韩人成 | 91高清在线成人免费观看 | 国产中文字幕在线 | 美利坚永久精品视频在线观看 | 国产一区二区三区亚洲欧美 | 大色佬视频在线观看 | 久久在线看 | 国产成人精品高清在线 | 91精品久久一区二区三区 | 人人做天天爱夜夜爽中字 | 午夜伦情电午夜伦情影院 | 九九久久久久午夜精选 | 日韩美女中文字幕 | 久久人人澡 | 免费看国产一级特黄aa大片 | 一级免费片 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 久久久久四虎国产精品 | 日本一级网站 | 国产精品久久久久影院 | 欧美激情视频网址 | 国产l精品国产亚洲区久久 国产l精品国产亚洲区在线观看 | 天天操操操 | www.国产视频| 口国产成人高清在线播放 | 岛国一级毛片 | 天天摸天天碰色综合网 | 国产精品成人免费视频不卡 | 狠狠色狠色综合曰曰 | 精品久久久久久久久久久 | 亚洲精品国产自在久久出水 | 色综合激情网 | 国产偷国产偷亚洲高清在线 | 四虎影院成人在线观看 | 亚洲最黄视频 | 国产精品成人观看视频网站 |