linux - 소켓의 바이트 순서에 대해 몇 가지 질문이 있습니다.
我想大声告诉你
我想大声告诉你 2017-05-31 10:37:36
0
3
873

최근 소켓에 대해 알아보고 있는데 요청을 보내면 요청한 IP 주소와 포트 번호를 네트워크 바이트 순서로 변환해야 한다는 사실을 발견했습니다. 그렇지 않으면 리틀 엔디안, 빅 엔디안으로 인해 파싱 문제가 발생합니다

근데 소켓이 설정된 후 텍스트 데이터를 바이트 순서로 처리하면 안되는 이유는 무엇입니까?

예를 들어 제가 보내는 것은 우리 모두가 알고 있듯이 현재 유니코드 문자 집합이 1바이트 이상이면 왜 소켓에서 수신한 데이터를 정상적으로 인식할 수 있는지에 대한 문제가 발생합니다. ?

我想大声告诉你
我想大声告诉你

모든 응답(3)
为情所困

소켓은 바이트 단위만 인식하며, 쓰여진 바이트는 상대방이 같은 순서로 읽게 됩니다.

유니코드 인코딩에는 이미 바이트 순서가 포함되어 있습니다. 예를 들어 한쪽 끝은 UTF16LE에 따라 바이트를 디코딩해야 합니다. (특별한 경우: UTF8의 인코딩 단위는 1바이트입니다. 주문 문제).

소켓을 사용하여 일반 데이터를 보내는 경우 바이트 순서를 고려해야 합니다. 이 고려 사항은 일반적으로 직렬화 프로토콜의 일부입니다.

大家讲道理

바이트 순서는 정수용입니다. 포트 번호가 16비트 정수이므로 빅엔디안 문제가 있습니다. 다른 건 상관없어

滿天的星座

TCP/UDP 및 기타 하위 수준 네트워크 프로토콜이 이러한 방식으로 규정되어 있기 때문입니다. 소켓이 설정된 후 전송된 데이터는 설계한 프로토콜과 동일하므로 송신자와 수신자 모두 동일한 바이트 순서를 사용하는 한 원하는 바이트 순서를 사용할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿