본문 바로가기
파이썬

파이썬 Python-sock.recv를 문자열로 변환

by º기록 2021. 1. 31.
반응형

나는 파이썬과 네트워킹을 파헤 치고있다.

while True:
   data = sock.recv(10240)

이것은 확실히 듣고 있습니다. 하지만 텍스트 문자열로 변환해야 할 것 같습니다.

struct.unpack () 을 사용하는 사람들을 보았지만 정확히 어떻게 작동하는지 모르겠습니다. 변환하는 방법은 무엇입니까?

 

해결 방법

 


소켓에서 데이터를받습니다. 반환 값은 수신 된 데이터를 나타내는 바이트 열 객체입니다.


stringdata = data.decode('utf-8')

(Python 2.x에서 bytes str 과 동일하므로 이미 문자열을 찾았습니다 .하지만 원하는 경우 유니 코드 텍스트 unicode 문자열을 가져옵니다. 3.x에서와 동일합니다.)


사람들이 넷 스트링이나 다른 유사한 기술을 사용하는 이유는 TCP를 사용할 때 메시지를 구분하는 방법이 필요하기 때문입니다. 각 recv 는 상대방이 send 로 전달한 것의 절반을 제공하거나 3 개의 send 를 제공하고 4 번째의 일부를 제공 할 수 있습니다. 따라서 recv 데이터의 버퍼를 축적 한 다음 그 버퍼에서 메시지를 가져와야합니다. 그리고 한 메시지가 언제 끝나고 다음 메시지가 시작되는지 알 수있는 방법이 필요합니다. 줄 바꿈없이 일반 텍스트 메시지를 보내는 경우 줄 바꿈을 구분자로 사용할 수 있습니다. 그렇지 않으면 넷 스트링이나 구분자로 \ 0 을 사용하거나 구분자로 줄 바꿈을 사용하지만 데이터 내에서 실제 줄 바꿈을 이스케이프하거나 일부 자체를 사용해야합니다. JSON과 같은 구분 된 구조화 된 형식.

 

참조 페이지 https://stackoverflow.com/questions/13979764

 

 

반응형

댓글