2017-09-03 5 views
1

파이썬의 소켓을 통해 커스텀 객체를 보내려고합니다. 내 객체는 다음과 같이 정의된다파이썬 TCP가 바이트와 비슷한 객체를 보내려고합니다.

packet = Packet.Packet(MAGIC_NUMBER,0,sender_next,packet_size,local_buffer) 
port_out.send(packet) 

그러나 나는의 오류가 점점 오전 : builtins.TypeError하십시오 바이트와 같은 객체가 필요하지 '패킷'

내가 본 이전 게시물 str 형식에 .encode()를 사용하는 방법에 대해 설명하지만이 같은 사용자 지정 개체에 대해 어떻게해야합니까? 인코딩 방법을 만들어야합니까?

+1

를 사용할 수 있습니다. '.encode()'문자열의 경우. 당신의'Packet' 객체는 당신이 그것을 호출하도록 선택합니다. –

+0

[파이썬을 통해 객체를 보내는 방법은?] (https://stackoverflow.com/questions/27542447/how-to-send-objects-through-python) –

+0

이 .encode() 함수를 어떻게 만듭니 까? –

답변

1

당신은 당신은 bytes``로 변환하는 방법이 필요 피클을

import pickle 

packet = Packet.Packet(MAGIC_NUMBER,0,sender_next,packet_size,local_buffer) 
port_out.send(pickle.dumps(packet)) 

https://pymotw.com/3/pickle/index.html

관련 문제