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

Python編解碼16進(jìn)制碼流的示例代碼

 更新時(shí)間:2024年04月26日 08:38:44   作者:橙虛的猿  
這篇文章主要為大家詳細(xì)介紹了Python編解碼16進(jìn)制碼流的相關(guān)資料,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

python編解碼16進(jìn)制碼流

目前在做python + vue寫(xiě)網(wǎng)站,最近遇到了用python代碼編解碼16進(jìn)制的碼流,與c語(yǔ)言程序進(jìn)行交互

自己寫(xiě)了一個(gè)簡(jiǎn)易版的客戶(hù)端與服務(wù)端的python代碼,利用到了 struct socket庫(kù),因?yàn)槭褂玫氖莡dp,所以就簡(jiǎn)單的調(diào)用一下庫(kù)

服務(wù)端代碼

import socket
import struct

# 創(chuàng)建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('localhost', 9999)

# 綁定地址和端口
server_socket.bind(server_address)

while True:
    print('Waiting for data...')
    data, client_address = server_socket.recvfrom(1024)
    
    # 打印接收到的原始數(shù)據(jù)的16進(jìn)制碼流
    print(f'Received raw data: {data.hex()}')
    
    # 解析收到的數(shù)據(jù)
    name, age = struct.unpack('BB', data)  # 'BB'表示兩個(gè)unsigned char
    
    # 修改數(shù)據(jù)
    name = (name + 1) % 256
    age = (age + 1) % 256
    
    # 重新打包數(shù)據(jù)
    modified_data = struct.pack('BB', name, age)
    
    # 打印修改后的數(shù)據(jù)的16進(jìn)制碼流
    print(f'Modified data: {modified_data.hex()}')
    
    # 發(fā)送修改后的數(shù)據(jù)回客戶(hù)端
    server_socket.sendto(modified_data, client_address)

客戶(hù)端代碼

import socket
import struct

# 創(chuàng)建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('localhost', 9999)

# 構(gòu)建數(shù)據(jù)結(jié)構(gòu)并打包
name = 100
age = 25
data = struct.pack('BB', name, age)

# 打印發(fā)送的數(shù)據(jù)的16進(jìn)制碼流
print(f'Sending data: {data.hex()}')

# 發(fā)送數(shù)據(jù)
client_socket.sendto(data, server_address)

# 接收服務(wù)端響應(yīng)
modified_data, server_address = client_socket.recvfrom(1024)

# 打印服務(wù)端響應(yīng)的數(shù)據(jù)的16進(jìn)制碼流
print(f'Received modified data: {modified_data.hex()}')

# 解析服務(wù)端響應(yīng)的數(shù)據(jù)
modified_name, modified_age = struct.unpack('BB', modified_data)

print(f'Modified Name: {modified_name}')
print(f'Modified Age: {modified_age}')

# 關(guān)閉套接字
client_socket.close()

定時(shí)器(apscheduler)定時(shí)發(fā)送

加上定時(shí)器之后服務(wù)端代碼是一樣的, 客戶(hù)端代碼我設(shè)定的是10s發(fā)送一次

代碼如下:

import socket
import struct
from apscheduler.schedulers.background import BackgroundScheduler

def send_data():
    # 構(gòu)建數(shù)據(jù)結(jié)構(gòu)并打包
    name = 100
    age = 25
    data = struct.pack('BB', name, age)
    
    # 打印發(fā)送的數(shù)據(jù)的16進(jìn)制碼流
    print(f'Sending data: {data.hex()}')
    
    # 發(fā)送數(shù)據(jù)
    client_socket.sendto(data, server_address)

# 創(chuàng)建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('localhost', 9999)

# 創(chuàng)建后臺(tái)調(diào)度器
scheduler = BackgroundScheduler()
scheduler.start()

# 添加定時(shí)發(fā)送數(shù)據(jù)的任務(wù),每10秒執(zhí)行一次
scheduler.add_job(send_data, 'interval', seconds=10)

try:
    # 阻塞主線(xiàn)程,等待任務(wù)執(zhí)行
    while True:
        pass
except KeyboardInterrupt:
    # 捕獲Ctrl+C信號(hào),停止調(diào)度器并關(guān)閉套接字
    scheduler.shutdown()
    client_socket.close()

到此這篇關(guān)于Python編解碼16進(jìn)制碼流的示例代碼的文章就介紹到這了,更多相關(guān)Python編解碼16進(jìn)制碼流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Jupyter notebook中如何添加Pytorch運(yùn)行環(huán)境

    Jupyter notebook中如何添加Pytorch運(yùn)行環(huán)境

    這篇文章主要介紹了Jupyter notebook中如何添加Pytorch運(yùn)行環(huán)境,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python文件處理的魔法之旅

    Python文件處理的魔法之旅

    Python文件處理在數(shù)據(jù)持久化、配置管理和日志記錄方面發(fā)揮著至關(guān)重要的作用,通過(guò)學(xué)習(xí)如何讀取、寫(xiě)入和修改文件,開(kāi)發(fā)者可以更加高效地處理各種數(shù)據(jù)和配置文件,需要的朋友可以參考下
    2024-11-11
  • Python中請(qǐng)使用isinstance()判斷變量類(lèi)型

    Python中請(qǐng)使用isinstance()判斷變量類(lèi)型

    這篇文章主要介紹了Python中請(qǐng)使用isinstance()判斷變量類(lèi)型,本文先是給出了isinstance函數(shù)判斷變量類(lèi)型的例子,并對(duì)isinstance 和 type的區(qū)別做了講解,需要的朋友可以參考下
    2014-08-08
  • Python 第三方日志框架loguru使用

    Python 第三方日志框架loguru使用

    使用Python自帶的logging模塊記錄日志,但是總覺(jué)得不夠優(yōu)雅。 Loguru解決了這個(gè)問(wèn)題,接下來(lái)通過(guò)本文給大家介紹Python 第三方日志框架loguru使用,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • python中安裝django模塊的方法

    python中安裝django模塊的方法

    這篇文章主要介紹了python中安裝django模塊的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • pygame 鍵盤(pán)事件的實(shí)踐

    pygame 鍵盤(pán)事件的實(shí)踐

    本文主要介紹了pygame 鍵盤(pán)事件,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Python線(xiàn)性回歸圖文實(shí)例詳解

    Python線(xiàn)性回歸圖文實(shí)例詳解

    用python進(jìn)行線(xiàn)性回歸分析非常方便,有現(xiàn)成的庫(kù)可以使用比如numpy.linalog.lstsq、scipy.stats.linregress、pandas.ols等,這篇文章主要給大家介紹了關(guān)于Python線(xiàn)性回歸的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用

    Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用

    本文主要介紹了Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python 使用PIL numpy 實(shí)現(xiàn)拼接圖片的示例

    Python 使用PIL numpy 實(shí)現(xiàn)拼接圖片的示例

    今天小編就為大家分享一篇Python 使用PIL numpy 實(shí)現(xiàn)拼接圖片的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python實(shí)例教程之檢索輸出月份日歷表

    Python實(shí)例教程之檢索輸出月份日歷表

    這篇文章主要給大家介紹了關(guān)于Python實(shí)例教程之檢索輸出月份日歷表的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論