private void BroadcastSend() { BrodcastMessage msg = new BrodcastMessage(); msg.Cluster = Cluster; msg.IP = ListenIPAddress; msg.NodeID = NodeID; msg.Port = Port.ToString(); if (!string.IsNullOrEmpty(mTokenKey)) { msg.Token = (NodeID + mTokenKey).GetMd5Hash(); } System.IO.MemoryStream stream = new System.IO.MemoryStream(); msg.Serialize(stream); byte[] data = stream.ToArray(); mTimer = new System.Threading.Timer(o => { try { for (int i = 0; i < 20; i++) { mEndPoint = new IPEndPoint(IPAddress.Broadcast, mPort + i); foreach (BroadcastUdpClient client in mBroadcastClients) { client.SendNodeInfo(data, mEndPoint); } } Loger.Process(LogType.BROAD_DEBUG, "broadcast send {0}", msg); } catch (Exception e_) { Loger.Process(LogType.BROAD_ERROR, "broadcast send note info error {0}", e_.Message); } }, data, 100, 2000); }
/// <summary> /// Fix Series /// </summary> /// <param name="param">null</param> private void FixSeries(object param) { if (Logics.FixSeries(FolderPath)) { BrodcastMessage?.Invoke("בוצע בהצלחה"); } else { BrodcastMessage?.Invoke("שגיאה"); } }
/// <summary> /// Fix Movies /// </summary> /// <param name="param">null</param> private void FixMovies(object param) { if (Logics.FixMovie(FilePath)) { BrodcastMessage?.Invoke("בוצע בהצלחה"); } else { BrodcastMessage?.Invoke("שגיאה"); } }
/// <summary> /// Fix Encoding /// </summary> /// <param name="param">null</param> private void FixEncoding(object param) { // select correct path (folder or file) bool IsFilePath = SelectionStatus == PATH_TYPE.File ? true : false; if (Logics.FixEncoding(IsFilePath ? FilePath : FolderPath, IsFilePath)) { BrodcastMessage?.Invoke("בוצע בהצלחה"); } else { BrodcastMessage?.Invoke("שגיאה"); } }
private void OnReceiveCompleted(object sender, System.Net.Sockets.SocketAsyncEventArgs e) { try { System.IO.MemoryStream stream = new System.IO.MemoryStream(e.Buffer, 0, e.BytesTransferred); BrodcastMessage msg = stream.Deserialize <BrodcastMessage>(e.BytesTransferred); if (msg.MessageType == "SMART_ROUTE") { if (!msg.Token.VerifyMd5Hash(msg.NodeID + mTokenKey)) { return; } if (msg.NodeID != NodeID && msg.Cluster == this.Cluster) { Loger.Process(LogType.BROAD_DEBUG, "broadcast reveive {0}", msg); if (string.IsNullOrEmpty(msg.IP)) { msg.IP = ((IPEndPoint)e.RemoteEndPoint).Address.ToString(); } try { if (!mDiscoverTable.ContainsKey(msg.NodeID)) { DiscoverEventArgs de = new DiscoverEventArgs(); de.Address = msg.IP; de.Port = int.Parse(msg.Port); de.NodeID = msg.NodeID; mDiscoverTable[msg.NodeID] = de; OnDiscorver(de); } } catch (Exception e__) { Loger.Process(LogType.BROAD_ERROR, "node ping error {0}", e__.Message); } } } } catch (Exception e_) { Loger.Process(LogType.BROAD_ERROR, "broadcast reveive error {0}", e_.Message); } finally { OnReceive(); } }