> 일반적인 문제 > TCP 긴 연결 하도급에는 몇 가지 방법이 있습니까?

TCP 긴 연결 하도급에는 몇 가지 방법이 있습니까?

coldplay.xixi
풀어 주다: 2020-06-28 13:20:26
원래의
3341명이 탐색했습니다.

tcp 긴 연결 패킷화에는 4가지 방법이 있습니다. 1. 메시지 길이를 고정하는 방법 2. 특수 문자열을 메시지 경계로 사용하는 방법 3. 각 헤더에 길이 필드를 추가합니다. 메시지 방식 4. 메시지 자체의 형식을 이용하여 하도급하는 방법.

TCP 긴 연결 하도급에는 몇 가지 방법이 있습니까?

TCP 긴 연결 패킷화의 네 가지 방법:
1. 고정 메시지 길이
2. 특수 문자열을 메시지 경계로 사용합니다. 예를 들어, http 프로토콜의 헤더는 "rn"을 필드 구분자로 사용합니다. “rn”为字段的分隔符
3.在每条消息的头部加一个长度字段。这是最常见的
4.利用消息本身的格式来分包。比如xml中的<root></root>3. 각 메시지의 헤더에 길이 필드를 추가합니다. 가장 일반적인

4. 하도급 시 메시지 자체의 형식을 사용합니다. 예를 들어 xml에서 <root></root>의 페어링 등

관련 학습 권장 사항: PHP 프로그래밍 초보부터 능숙까지


패킷화를 위해 헤더에 메시지 길이 필드를 추가하는 방법에 대해 이야기해 봅시다. 0x00,0x00,0x00,0x05,‘h’,'e','l','l','o' 각 메시지에는 문자열 길이를 저장하는 4바이트 헤더가 있다고 가정합니다. 예를 들어 "hello" 메시지, 바이트 스트림은

입니다. 하위 패키징을 표시하는 의사 코드를 작성하세요. 🎜
void OnMessage()
{    while(接收缓冲buf可读字节>=头部长度4)
    {
        len = 包的长度        if(len>65536 or len<0)
        {
            关闭连接
        }        else if(buf>=len+4)
        {
            从buf中提取出4字节;
            message=将buf后的len长度内存赋给message
            messagecallback(message)调用用户代码处理message
            从buf中移除len长度
        }        else
        {
            不够一个包的长度,等待下次消息到来,break;
        }
    }
}
로그인 후 복사

위 내용은 TCP 긴 연결 하도급에는 몇 가지 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿