最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)易版的客戶端與服務(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ù)回客戶端
    server_socket.sendto(modified_data, client_address)

客戶端代碼

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ù)端代碼是一樣的, 客戶端代碼我設(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:
    # 阻塞主線程,等待任務(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)文章

  • pytorch中Dropout的具體用法

    pytorch中Dropout的具體用法

    Dropout是一種常用的正則化技術(shù),用于防止神經(jīng)網(wǎng)絡(luò)過(guò)擬合,PyTorch 提供了nn.Dropout層來(lái)實(shí)現(xiàn)這一功能,下面就來(lái)介紹一下如何使用,感興趣的可以了解一下
    2025-12-12
  • Django migrate報(bào)錯(cuò)的解決方案

    Django migrate報(bào)錯(cuò)的解決方案

    在講解如何解決migrate報(bào)錯(cuò)原因前,我們先要了解migrate做了什么事情,本文就詳細(xì)的介紹migrate使用以及出現(xiàn)問(wèn)題的解決,感興趣的可以了解一下
    2021-05-05
  • 跟老齊學(xué)Python之print詳解

    跟老齊學(xué)Python之print詳解

    print的一些基本用法,在前面的講述中也涉及一些,本講是在復(fù)習(xí)的基礎(chǔ)上,盡量再多點(diǎn)內(nèi)容。
    2014-09-09
  • Python趣味挑戰(zhàn)之實(shí)現(xiàn)簡(jiǎn)易版音樂(lè)播放器

    Python趣味挑戰(zhàn)之實(shí)現(xiàn)簡(jiǎn)易版音樂(lè)播放器

    小伙伴們天天學(xué)編程應(yīng)該都學(xué)累了,今天特地給大家整理了這篇文章,讓大家在學(xué)習(xí)的時(shí)候也收貨快樂(lè),文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下
    2021-05-05
  • python列表[list]和元組(tuple)詳情

    python列表[list]和元組(tuple)詳情

    這篇文章主要介紹了python列表[list]和元組(tuple)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python正則表達(dá)式實(shí)例代碼

    python正則表達(dá)式實(shí)例代碼

    這篇文章主要介紹了python正則表達(dá)式的一些實(shí)例代碼,方便學(xué)習(xí)python的朋友,需要的朋友可以參考下
    2020-03-03
  • 探尋python多線程ctrl+c退出問(wèn)題解決方案

    探尋python多線程ctrl+c退出問(wèn)題解決方案

    這篇文章主要講述了探尋python多線程ctrl-c退出問(wèn)題解決方案,需要的朋友可以參考下
    2014-10-10
  • matplotlib圖例、標(biāo)簽、坐標(biāo)軸刻度的字體設(shè)置方式

    matplotlib圖例、標(biāo)簽、坐標(biāo)軸刻度的字體設(shè)置方式

    這篇文章主要介紹了matplotlib圖例、標(biāo)簽、坐標(biāo)軸刻度的字體設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • PyQt5+QtChart繪制散點(diǎn)圖

    PyQt5+QtChart繪制散點(diǎn)圖

    QChart是一個(gè)QGraphicScene中可以顯示的QGraphicsWidget。本文將利用QtChart實(shí)現(xiàn)繪制散點(diǎn)圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-12-12
  • Python切片知識(shí)解析

    Python切片知識(shí)解析

    這篇文章主要介紹了Python切片知識(shí)解析的相關(guān)資料,需要的朋友可以參考下
    2016-03-03

最新評(píng)論

武威市| 托克逊县| 成武县| 兖州市| 循化| 汨罗市| 时尚| 靖宇县| 平原县| 天等县| 长顺县| 宜川县| 宕昌县| 交城县| 讷河市| 磴口县| 邯郸市| 班玛县| 云浮市| 连城县| 徐州市| 栾城县| 焉耆| 普格县| 屏山县| 剑河县| 吉隆县| 高台县| 博白县| 荆州市| 青阳县| 四子王旗| 兴海县| 保山市| 西平县| 长子县| 凤翔县| 资溪县| 呼伦贝尔市| 宁晋县| 电白县|