나는 파이썬과 네트워킹을 파헤 치고있다.
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
'파이썬' 카테고리의 다른 글
파이썬 id ()로 개체를 가져 오시겠습니까? (0) | 2021.01.31 |
---|---|
파이썬 ImportError : 6이라는 모듈이 없습니다. (0) | 2021.01.31 |
파이썬에서 클래스의 모든 멤버 변수를 반복 (0) | 2021.01.31 |
파이썬 중단하고 기능 계속 (0) | 2021.01.31 |
파이썬 3D Numpy 배열을 2D로 (0) | 2021.01.31 |
댓글