Heim > häufiges Problem > Hauptteil

Wie viele Methoden gibt es für die Vergabe von Unteraufträgen für lange TCP-Verbindungen?

coldplay.xixi
Freigeben: 2020-06-28 13:20:26
Original
3313 Leute haben es durchsucht

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.

Wie viele Methoden gibt es für die Vergabe von Unteraufträgen für lange TCP-Verbindungen?

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;
        }
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage