public void SwitchToP2P(NetworkStream netStream, string key, Messagehandler mh) { if (window.InvokeRequired) { window.Invoke(new Action <NetworkStream, string, Messagehandler>(SwitchToP2P), new object[] { netStream, key, mh }); return; } isP2P = true; int NumberChars = key.Length; byte[] personalKey = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) { personalKey[i / 2] = System.Convert.ToByte(key.Substring(i, 2), 16); } writer = new P2PWriter(netStream, personalKey); p2pListener = new P2PListener(netStream, receiver, personalKey); writer = new P2PWriter(netStream, personalKey); mh.Subscribe(p2pListener); p2pListener.StartListen(); window.attachmentPanel.Visible = true; window.userStatusLabel.Text = "Online"; }
//Constructs backend modules private void ConstructBackend() { connector = new SSLConnector(IP, PORT); //Connect to server! connector.Connect(); IPAddress ip = connector.getIP(); writer = new SSLWriter(connector.SslStream); streamListener = new SSLListener(connector.SslStream); messagehandler = new Messagehandler(); logCrypto = new ClientCrypto(); p2pConnector = new P2PConnector(); }
public void Subscribe(Messagehandler mh, P2PConnector p2pc) { messageHandler = mh; mh.IncommingClientMessage += new EventHandler(IncommingMessage); mh.IncommingLoginAck += new EventHandler(LoggingIn); mh.IncommingFriendRequest += new EventHandler(ReceivedFriendRequest); mh.IncommmingFriendResponse += new EventHandler(ReceivedFriendResponse); mh.OutgoingP2P += new EventHandler(ReceivedP2PResponse); mh.NewStatusUpdate += new EventHandler(ReceivedStatusUpdate); contactsHandler.Subscribe(mh); p2pc.IncommingConnection += new EventHandler(NewP2PConnection); mh.DisconnectP2P += new EventHandler(DisposeP2PConnection); mh.FileResponse += new EventHandler(ReceivedFileResponse); mh.FileRequest += new EventHandler(ReceivedFileRequest); }
public void UnSubscribe(Head head, Messagehandler handler) { if (!_messageSubscribers.ContainsKey(head)) { return; } var subs = _messageSubscribers[head]; if (subs == null || !subs.Contains(handler)) { return; } subs.Remove(handler); }
public void Subscribe(Head head, Messagehandler handler) { if (_messageSubscribers.ContainsKey(head)) { var subs = _messageSubscribers[head]; if (subs == null) { _messageSubscribers[head] = new List <Messagehandler> { handler } } ; else { _messageSubscribers[head].Add(handler); } } else { _messageSubscribers.Add(head, new List <Messagehandler> { handler }); } }
public IndividualChatDriver(string username, string receiver, FileManager fm, NetworkStream netstream, Messagehandler mh, string key, string status) { isP2P = true; this.username = username; this.receiver = receiver; this.fm = fm; window = new IndividualChatWindow(receiver); window.WindowState = FormWindowState.Minimized; window.ShowInTaskbar = false; window.getStatusTextLabel().Text = status; spam = new SpamProtector(); SetupListners(); int NumberChars = key.Length; byte[] personalKey = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) { personalKey[i / 2] = System.Convert.ToByte(key.Substring(i, 2), 16); } writer = new P2PWriter(netstream, personalKey); p2pListener = new P2PListener(netstream, receiver, personalKey); writer = new P2PWriter(netstream, personalKey); mh.Subscribe(p2pListener); p2pListener.StartListen(); new Thread(() => Application.Run(window)).Start(); Thread.Sleep(10); }
public void RD_Subscribe(Messagehandler mh) { mh.IncommingRegAck += new EventHandler(RD_RegisterCheck); }