Es gibt 4 Methoden für die Paketierung langer TCP-Verbindungen: 1. Die Methode der festen Nachrichtenlänge; 2. Die Methode der Verwendung spezieller Zeichenfolgen als Nachrichtengrenzen; 3. Hinzufügen des Headers zu jeder Nachrichtenlänge; Feldmethode; 4. Eine Methode zur Unterauftragsvergabe unter Verwendung des Formats der Nachricht selbst.
Vier Methoden zur Unterauftragsvergabe für lange TCP-Verbindungen:
1. Feste Nachrichtenlänge
2 Grenzen. Beispielsweise verwenden die Header des HTTP-Protokolls “rn”
als Feldtrennzeichen
3. Fügen Sie dem Header jeder Nachricht ein Längenfeld hinzu. Dies ist die gebräuchlichste Methode.
4. Verwenden Sie das Format der Nachricht selbst, um Unteraufträge zu vergeben. Zum Beispiel die Paarung von <root></root>
in XML usw.
Verwandte Lernempfehlungen: PHP Programmieren vom Anfänger bis zum Experten
Erzählen Sie mir von der Methode zum Hinzufügen eines Nachrichtenlängenfelds zum Header zur Paketierung
Wenn jede Nachricht einen 4-Byte-Header hat, speichern Sie die Zeichenfolgenlänge . Beispielsweise lautet die Nachricht „Hallo“, der Bytestrom ist 0x00
, 0x00
, 0x00
, 0x05
, 'h’,'e','l','l','o'
Schreiben Sie einen Pseudocode, um die Unterauftragsvergabe anzuzeigen:
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; } } }
Das obige ist der detaillierte Inhalt vonWie viele Methoden gibt es für die Vergabe von Unteraufträgen für lange TCP-Verbindungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!