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 | 31 |
Tags
- docker
- 레파지토리
- 파이썬
- 스트리밍
- 영상스트리밍
- 자식프로세스
- FastAPI
- psutil
- APT
- golang
- QT_QPA_PLATFORM_PLUGIN_PATH
- Hyper-V
- Windows
- go
- Replication
- python3.9
- go.mod
- Python
- mariadb
- Finance
- apt-get
- BATCH
- repo
- 주식
- pip
- dockercontainer
- 가상화 중첩화
- asyncio
- 자원측정
- Thread
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 |