Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ WriteHeader()

static int System.Net.WebSockets.ManagedWebSocket.WriteHeader ( MessageOpcode opcode,
byte[] sendBuffer,
ReadOnlySpan< byte > payload,
bool endOfMessage,
bool useMask,
bool compressed )
inlinestaticprivate

Definition at line 976 of file ManagedWebSocket.cs.

977 {
978 sendBuffer[0] = (byte)opcode;
979 if (endOfMessage)
980 {
981 sendBuffer[0] |= 128;
982 }
983 if (compressed && opcode != 0)
984 {
985 sendBuffer[0] |= 64;
986 }
987 int num;
988 if (payload.Length <= 125)
989 {
990 sendBuffer[1] = (byte)payload.Length;
991 num = 2;
992 }
993 else if (payload.Length <= 65535)
994 {
995 sendBuffer[1] = 126;
996 sendBuffer[2] = (byte)(payload.Length / 256);
997 sendBuffer[3] = (byte)payload.Length;
998 num = 4;
999 }
1000 else
1001 {
1002 sendBuffer[1] = 127;
1003 int num2 = payload.Length;
1004 for (int num3 = 9; num3 >= 2; num3--)
1005 {
1006 sendBuffer[num3] = (byte)num2;
1007 num2 /= 256;
1008 }
1009 num = 10;
1010 }
1011 if (useMask)
1012 {
1013 sendBuffer[1] |= 128;
1014 WriteRandomMask(sendBuffer, num);
1015 }
1016 return num;
1017 }
static void WriteRandomMask(byte[] buffer, int offset)

References System.ReadOnlySpan< T >.Length, and System.Net.WebSockets.ManagedWebSocket.WriteRandomMask().

Referenced by System.Net.WebSockets.ManagedWebSocket.WriteFrameToSendBuffer().