tcp 긴 연결 패킷화에는 4가지 방법이 있습니다. 1. 메시지 길이를 고정하는 방법 2. 특수 문자열을 메시지 경계로 사용하는 방법 3. 각 헤더에 길이 필드를 추가합니다. 메시지 방식 4. 메시지 자체의 형식을 이용하여 하도급하는 방법.
TCP 긴 연결 패킷화의 네 가지 방법:
1. 고정 메시지 길이
2. 특수 문자열을 메시지 경계로 사용합니다. 예를 들어, http 프로토콜의 헤더는 "rn"
을 필드 구분자로 사용합니다. “rn”
为字段的分隔符
3.在每条消息的头部加一个长度字段。这是最常见的
4.利用消息本身的格式来分包。比如xml中的<root></root>
3. 각 메시지의 헤더에 길이 필드를 추가합니다. 가장 일반적인
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!