Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- QT_QPA_PLATFORM_PLUGIN_PATH
- Python
- FastAPI
- asyncio
- APT
- go.mod
- pip
- apt-get
- go
- Thread
- psutil
- Hyper-V
- 레파지토리
- dockercontainer
- 스트리밍
- mariadb
- docker
- 가상화 중첩화
- BATCH
- golang
- Replication
- 자원측정
- 영상스트리밍
- python3.9
- 주식
- Finance
- repo
- 자식프로세스
- 파이썬
- Windows
Archives
- Today
- Total
검색하기귀찮아서만든블로그
[python] 구조체 (struct) 사용하기 본문
# -*- coding: utf-8 -*-
import struct
import ctypes
# 구조체 정의
class _ST_TEST(ctypes.Structure):
_fields_ = [
("cVal", ctypes.c_char),
("byVal", ctypes.c_ubyte),
("sVal", ctypes.c_short),
("usVal", ctypes.c_ushort),
("nVal", ctypes.c_int),
("uVal", ctypes.c_uint),
("lVal", ctypes.c_long),
("ulVal", ctypes.c_ulong),
]
# 구조체 포맷 정의
_ST_TEST_FMT = '!c B h H i I l L'
# 스트럭처 데이터 생성
stSrc = struct.pack(_ST_TEST_FMT, bytes('A', "utf-8"), 255, 32767, 65535, 2147483647, 4294967295, 2147483647, 4294967295)
# 스트럭처 구조체 생성
stDst = _ST_TEST()
# 소스 구조체를 파싱하여 구조체 변수에 넣는다. (소켓으로 받은 데이터를 파싱할 때 활용할 수 있음.)
stDst.cVal, stDst. byVal, stDst.sVal, stDst.usVal, stDst.nVal, stDst.uVal, stDst.lVal, stDst.ulVal = struct.unpack(_ST_TEST_FMT, stSrc)
print('[parse result]\n - char val : {0}\n - byte val : {1}\n - short val : {2}\n - ushort val : {3}\n\
- int val : {4}\n - uint val : {5}\n - long val : {6}\n - ulong val : {7}'\
.format(stDst.cVal, stDst. byVal, stDst.sVal, stDst.usVal, stDst.nVal, stDst.uVal, stDst.lVal, stDst.ulVal))
'개발' 카테고리의 다른 글
[python] coroutine 비동기 처리 (0) | 2022.06.06 |
---|---|
[python] DLL 동적 라이브러리 함수 사용하기 (0) | 2022.06.01 |
[Python] 프로세스 시스템 자원 측정 (0) | 2022.04.16 |
[python] multiprocessing 사용법 (0) | 2022.04.02 |
[python] fast api 영상 relay server (0) | 2021.12.04 |