欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年06月29日 14:14:20   作者:格格小丫頭  
這篇文章主要介紹了python 基于TCP協(xié)議的套接字編程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

基于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ī)號(hào) 一個(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,看看會(huì)得到什么) ,會(huì)出現(xiàn)什么情況呢,下次的博客會(huì)講到粘包問題,以及如何處理粘包問題
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. 撥號(hào)
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. 撥號(hào)
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. 撥號(hào)
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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python time庫的使用

    詳解Python time庫的使用

    這篇文章主要介紹了Python time庫的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Object arrays cannot be loaded when allow_pickle=False的問題

    Object arrays cannot be loaded when

    這篇文章主要介紹了Object arrays cannot be loaded when allow_pickle=False,本文給大家分享問題解決思路,需要的朋友可以參考下
    2022-11-11
  • Python requests HTTP驗(yàn)證登錄實(shí)現(xiàn)流程

    Python requests HTTP驗(yàn)證登錄實(shí)現(xiàn)流程

    這篇文章主要介紹了Python requests HTTP驗(yàn)證登錄實(shí)現(xiàn)流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python中requests和https使用簡單示例

    python中requests和https使用簡單示例

    這篇文章主要介紹了python中requests和https使用簡單示例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Django自定義用戶登錄認(rèn)證示例代碼

    Django自定義用戶登錄認(rèn)證示例代碼

    這篇文章主要給大家介紹了關(guān)于Django自定義用戶登錄認(rèn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Pytorch 如何實(shí)現(xiàn)LSTM時(shí)間序列預(yù)測

    Pytorch 如何實(shí)現(xiàn)LSTM時(shí)間序列預(yù)測

    本文主要基于Pytorch深度學(xué)習(xí)框架,實(shí)現(xiàn)LSTM神經(jīng)網(wǎng)絡(luò)模型,用于時(shí)間序列的預(yù)測
    2021-05-05
  • Python通過wordcloud庫實(shí)現(xiàn)將單詞生成詞云

    Python通過wordcloud庫實(shí)現(xiàn)將單詞生成詞云

    Python的wordcloud庫是一個(gè)用于生成詞云的Python包,它可以將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個(gè)詞云圖形,從而更好地展示文本中的信息,你可以使用wordcloud庫來生成各種類型的詞云,本文就介紹了如何生成心型詞云
    2023-06-06
  • python使用 cx_Oracle 模塊進(jìn)行查詢操作示例

    python使用 cx_Oracle 模塊進(jìn)行查詢操作示例

    這篇文章主要介紹了python使用 cx_Oracle 模塊進(jìn)行查詢操作,結(jié)合實(shí)例形式分析了Python使用cx_Oracle模塊進(jìn)行數(shù)據(jù)庫的基本連接、查詢、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • Pandas替換及部分替換(replace)實(shí)現(xiàn)流程詳解

    Pandas替換及部分替換(replace)實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了Pandas替換及部分替換(replace)實(shí)現(xiàn)流程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • python在多玩圖片上下載妹子圖的實(shí)現(xiàn)代碼

    python在多玩圖片上下載妹子圖的實(shí)現(xiàn)代碼

    學(xué)python的第二天,想寫個(gè)東西出來玩玩,于是就寫了這個(gè),供那些才學(xué)一天的參考參考也行
    2013-08-08

最新評(píng)論