private void ResponseConnectionAttemptRequest(string key, IPEndPoint ipe) { SignalingServerMessage ssm = new SignalingServerMessage(SignalingMethod.ConnectionAttemptResponse); byte[] addressByte = ipe.Address.GetAddressBytes(); byte[] ip = new byte[3 + addressByte.Length]; if (addressByte.Length > 4) { ip[0] = 0x2; } else { ip[0] = 0x1; } ushort port = (ushort)ipe.Port; ip[2] = (byte)(port & 0xff); ip[1] = (byte)((port >> 8) & 0xff); Array.Copy(addressByte, 0, ip, 3, addressByte.Length); ssm.WriteBytes(SignalingAttribute.PeerAddress, ip); lock (_lock) { senderTable[key].Send(ssm.WriteRequest()); } }
private void ResponseCreateRoom(bool success) { SignalingServerMessage ssm = new SignalingServerMessage(SignalingMethod.CreateRoomResponse); if (success) { ssm.WriteEmpty(SignalingAttribute.Success); } else { ssm.WriteEmpty(SignalingAttribute.Failed); } sender.Send(ssm.WriteRequest()); }
private void ResponseGetRoomList(string tag) { SignalingServerMessage ssm = new SignalingServerMessage(SignalingMethod.GetRoomListResponse); // List <Room> sameTag; lock (_lock) { sameTag = room.FindAll(x => x.Tag == tag); } //Console.WriteLine("Result Room Tag: {0}, total: {1}", tag, sameTag.Count); for (int i = 0; i < sameTag.Count; i++) { Console.WriteLine("Find: " + sameTag[i].ToString()); byte[] addressByte = sameTag[i].IP.Address.GetAddressBytes(); byte[] ip = new byte[3 + addressByte.Length]; if (addressByte.Length > 4) { ip[0] = 0x2; } else { ip[0] = 0x1; } ushort port = (ushort)sameTag[i].IP.Port; ip[2] = (byte)(port & 0xff); ip[1] = (byte)((port >> 8) & 0xff); Array.Copy(addressByte, 0, ip, 3, addressByte.Length); ssm.WriteString(SignalingAttribute.RoomName, sameTag[i].Name); ssm.WriteString(SignalingAttribute.RoomDescription, sameTag[i].Description); ssm.WriteBytes(SignalingAttribute.RoomAddress, ip); Console.WriteLine("Key: " + sameTag[i].Key); } Console.WriteLine("Result Room Tag: {0}, total: {1}", tag, sameTag.Count); sender.Send(ssm.WriteRequest()); }