목차
- struct.unpack 이란?
- struct.unpack 함수 인자 및 반환 값 설명
- struct.pack 예제 이전 포스팅
- struct.unpack으로 패킹 값 언팩킹 예제
- struct.unpack 활용한 네트워크 통신 언패킹 예제
1. struct.unpack 이란?
struct.unpack
은 struct.pack
함수와 반대로 작동합니다. 이 함수를 사용하여 바이트 형태의 데이터를 언패킹하여 원래의 데이터 타입으로 변환할 수 있습니다.
2. struct.unpack 함수 인자 및 반환 값 설명
struct.unpack
함수도 두 가지 인자를 받습니다.
첫 번째 인자는 언패킹 포맷 문자열로, 이를 통해 어떤 데이터 타입을 어떤 순서로 언패킹할지를 지정합니다.
두 번째 인자는 언패킹할 바이트 데이터입니다. 함수의 반환 값은 언패킹된 데이터를 나타내는 튜플입니다.
3. struct.pack 예제 이전 포스팅
이전 포스팅에서는 struct.pack
함수를 이용하여 데이터를 바이트 형태로 패킹하는 방법을 다루었습니다. 이번 포스팅에서는 그 패킹된 데이터를 언패킹하여 원래의 데이터로 복원하는 방법에 대해 알아보겠습니다.
아래는 pack 예제 포스팅입니다.
2023.08.08 - [Python/os] - [Python] struct.pack 바이트 패킹 예제(byte, int)
4. struct.unpack으로 패킹 값 언팩킹 예제
아래 예제는 struct.unpack
을 이용하여 패킹된 데이터를 언패킹하는 예제입니다.
import struct
packed_data = struct.pack('bb', 10, -5)
unpacked_data = struct.unpack('bb', packed_data)
print("언패킹된 데이터:", unpacked_data)
5. struct.unpack 활용한 네트워크 통신 언패킹 예제
네트워크 통신에서 데이터를 패킹하여 전송하고, 그 데이터를 수신하여 언패킹하여 필요한 정보를 추출하는 예제입니다.
소켓을 활용하여 서버에 연결하는 예제는 다음 포스팅을 참고해주세요.
import socket
import struct
# 데이터 패킹 및 전송
data_to_send = struct.pack('3s I', b'ABC', 12345)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 8888))
sock.send(data_to_send)
received_data = sock.recv(1024)
unpacked_data = struct.unpack('3s I', received_data)
print("언패킹된 데이터:", unpacked_data)
sock.close()
반응형