서로 다른 컴퓨터(언어, 시스템) 끼리 소켓통신을 할때 데이터 타입의 보존및 원활한 통신을 위해
1 byte array를 서로 주고 받으면서 통신한다.
matlab 같은 경우는 typecast(data,'uint8') , typecast(data,'single') 이런식으로 ,
c같은 경우엔 byte array를 원하는 변수타입에 넣기만 하면 알아서 casting되는 듯 한데
Python은 어떻게 할까?
바로 struct 모듈을 이용한다.
>>> import struct
>>> struct.pack('f', 3.141592654)
'\xdb\x0fI@'
>>> struct.unpack('f', '\xdb\x0fI@')
(3.1415927410125732,)
>>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0)
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@'
(어디서 긁어왔음..-_-)
너무 간단하다! pack('f' 로 float ~ (4byte) 로 팩 하고, unpack('f' ~ 로 언팩해서 쓴다!
통신할때 패킷은 byte단위로 끊어서 넘기는것 항상 잊지말자.
% 주의해야 할 점 :
unpack을 하였을때 return값은 튜플이다!
반응형
'Programming > python' 카테고리의 다른 글
[python] thread mangement (0) | 2014.06.27 |
---|---|
[python] python 의 변수들 (0) | 2014.02.25 |
[python] variable 이 존재하는지 check 하는 방법 (0) | 2014.02.25 |
python thread (0) | 2013.08.21 |
python 파이썬 파일 이름 변경 filename change (0) | 2012.09.25 |