public static void SendControlMsg(UdpClient udpClient, IPEndPoint remote, int ack, bool useToken, uint token, ConnectionMessages msg, byte[] extra) { NetworkChunkConstruct packet; if (extra == null || extra.Length == 0) { packet = new NetworkChunkConstruct(1) { DataSize = 1 }; } else { packet = new NetworkChunkConstruct(1 + extra.Length) { DataSize = 1 + extra.Length }; Buffer.BlockCopy(extra, 0, packet.Data, 1, extra.Length); } packet.NumChunks = 0; packet.Flags = PacketFlags.CONTROL | (useToken ? PacketFlags.TOKEN : PacketFlags.NONE); packet.Ack = ack; packet.Token = token; packet.Data[0] = (byte)msg; SendPacket(udpClient, remote, packet); }
protected override void SendConnectionMsg(ConnectionMessages msg, byte[] extra, int extraSize) { LastSendTime = Time.Get(); NetworkHelper.SendConnectionMsg(UdpClient, EndPoint, PeerToken, Ack, msg, extra, extraSize); }
public override void SendControlMsg(ConnectionMessages msg, string extra) { LastSendTime = Time.Get(); var useToken = UseToken && msg != ConnectionMessages.CONNECT; NetworkCore.SendControlMsg(UdpClient, EndPoint, Ack, useToken, Token, msg, extra); }
/// <summary> /// Til at modtage nye forbindelser via. Enkelte valgte forbindelse i sidepanelet. /// Tilføjer forbindelsen i forbindelses listen hvis den er gyldig /// Åbner forbindelsen /// </summary> /// <param name="message"></param> public void OnConnection(ConnectionMessages message) { try { switch (message.Type) { case DBAdapterType.Mysql: var MysqlCon = new MySqlConnection(message.ConnectionString); MysqlCon.Open(); dataService.ConnectionList.Add(message.Databasename, new MySqlDataConnection(MysqlCon)); dataService.ConnectionListNames.Add(message.Databasename); Items.Add(dataService.mysqlTree.BuildTree(MysqlCon)); message.Execute(true); TableAddons.writeLogFile($"{message.Databasename} type of MySql, has been added to" + $" the connection list", dataService.LogLocation); //-- Sender en besked 'true' til SidepanelViewModel så du kan tilføje tabeller Messenger.Default.Send <bool, SidePanelViewModel>(true); ItemsFilter = Items; break; case DBAdapterType.Oracle: var OracleCon = new OdbcConnection(message.ConnectionString); OracleCon.Open(); dataService.ConnectionList.Add(message.Databasename, new OracleDataConnection(OracleCon)); dataService.ConnectionListNames.Add(message.Databasename); Items.Add(dataService.oracleTree.BuildTree(OracleCon)); message.Execute(true); TableAddons.writeLogFile($"{message.Databasename} type of Oracle, has been added to" + $" the connection list", dataService.LogLocation); //-- Sender en besked 'true' til SidepanelViewModel så du kan tilføje tabeller Messenger.Default.Send <bool, SidePanelViewModel>(true); ItemsFilter = Items; break; case DBAdapterType.Mssql: var MssCon = new SqlConnection(message.ConnectionString); MssCon.Open(); dataService.ConnectionList.Add(message.Databasename, new MssqlDataConnection(MssCon)); dataService.ConnectionListNames.Add(message.Databasename); Items.Add(dataService.mssqlTree.BuildTree(MssCon)); message.Execute(true); TableAddons.writeLogFile($"{message.Databasename} type of MsSql, has been added to" + $" the connection list", dataService.LogLocation); //-- Sender en besked 'true' til SidepanelViewModel så du kan tilføje tabeller Messenger.Default.Send <bool, SidePanelViewModel>(true); ItemsFilter = Items; break; default: message.Execute(false); break; } } catch { message.Execute(false); } }
public static void SendConnectionMsg(UdpClient client, IPEndPoint endPoint, uint token, int ack, ConnectionMessages msg, string extra) { if (string.IsNullOrWhiteSpace(extra)) { SendConnectionMsg(client, endPoint, token, ack, msg, null, 0); } else { var data = Encoding.UTF8.GetBytes(extra); SendConnectionMsg(client, endPoint, token, ack, msg, data, data.Length); } }
public static void SendControlMsg(UdpClient udpClient, IPEndPoint remote, int ack, bool useToken, uint token, ConnectionMessages msg, string extra) { if (string.IsNullOrWhiteSpace(extra)) { SendControlMsg(udpClient, remote, ack, useToken, token, msg, (byte[])null); } else { SendControlMsg(udpClient, remote, ack, useToken, token, msg, Encoding.UTF8.GetBytes(extra)); } }
public static void SendConnectionMsgWithToken(UdpClient client, IPEndPoint endPoint, uint token, int ack, ConnectionMessages msg, uint myToken, bool extended) { Debug.Assert((token & ~TokenHelper.TokenMask) == 0, "token out of range"); Debug.Assert((myToken & ~TokenHelper.TokenMask) == 0, "resp token out of range"); var buffer = new byte[TokenHelper.TokenRequestDataSize]; buffer[0] = (byte)((myToken >> 24) & 0xff); buffer[1] = (byte)((myToken >> 16) & 0xff); buffer[2] = (byte)((myToken >> 8) & 0xff); buffer[3] = (byte)((myToken & 0xff)); SendConnectionMsg(client, endPoint, token, 0, msg, buffer, extended ? buffer.Length : 4); }
public void TCPProxy_MessagePosted(object sender, StringEventArgs e) { if (this.Dispatcher.Thread.Equals(Thread.CurrentThread)) { ConnectionMessages.Add(e.message); } else { this.Dispatcher.BeginInvoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { ConnectionMessages.Add(e.message); } )); } }
public static void SendConnectionMsg(UdpClient client, IPEndPoint endPoint, uint token, int ack, ConnectionMessages msg, byte[] extraData, int extraSize) { var packet = new ChunkConstruct(1 + extraSize) { Token = token, Flags = PacketFlags.Control, Ack = ack, NumChunks = 0, DataSize = 1 + extraSize }; packet.Data[0] = (byte)msg; if (extraSize > 0) { Buffer.BlockCopy(extraData, 0, packet.Data, 1, extraSize); } SendPacket(client, endPoint, packet); }
protected abstract void SendConnectionMsgWithToken(ConnectionMessages msg);
protected abstract void SendConnectionMsg(ConnectionMessages msg, byte[] extra, int extraSize);
protected abstract void SendConnectionMsg(ConnectionMessages msg, string extra);
protected override void SendConnectionMsgWithToken(ConnectionMessages msg) { LastSendTime = Time.Get(); NetworkHelper.SendConnectionMsgWithToken(UdpClient, EndPoint, PeerToken, 0, msg, Token, true); }
protected override void SendConnectionMsg(ConnectionMessages msg, string extra) { LastSendTime = Time.Get(); NetworkHelper.SendConnectionMsg(UdpClient, EndPoint, PeerToken, Ack, msg, extra); }
public abstract void SendControlMsg(ConnectionMessages msg, byte[] extra);
public abstract void SendControlMsg(ConnectionMessages msg, string extra);