private void _tcpmoduleClient_Receive(object sender, ReceiveEventArgs e) { if (e.SendInfo.Message != null) { _tcpmoduleClient_ShowStatusMessage(string.Format("Получен публичный ключ сервера:{0}", e.SendInfo.Message)); //получаем паблик от сервера и формируем свой секретный ключ и можем передавать файлы _tcpmoduleClient.DiffieHellman.CreateSecretKey(e.SendInfo.Message); //теперь идем по списку файлов и передаем их var t = new Thread(_tcpmoduleClient.SendMultipleFiles); var fileslist = (from object item in listBoxFilesToSend.Items select item.ToString()).ToList(); t.Start(fileslist); } if (e.SendInfo.Filesize > 0) { //ShowReceiveMessage("Файл: " + e.sendInfo.filename); _tcpmoduleClient_ShowStatusMessage("Файл: " + e.SendInfo.Filename); } }
private void _tcpmoduleServer_Receive(object sender, ReceiveEventArgs e) { if (e.SendInfo.Message != null) { //сервер получил клиентский паблик в ответ формируем свой и отправляем клиенту _tcpmoduleServer.DiffieHellman = new DiffieHellmanWorker(); //отсылаем второму участнику _tcpmoduleServer.IsCrypt = true; var t = new Thread(_tcpmoduleServer.SendData); var param = new SendDataParam { Message = Convert.ToBase64String(_tcpmoduleServer.DiffieHellman.PublicKey) }; t.Start(param); //и формируем свой секретный ключ _tcpmoduleServer.DiffieHellman.CreateSecretKey(e.SendInfo.Message); _tcpmoduleServer_ShowStatusMessage(string.Format("Получен публичный ключ клиента:{0}", e.SendInfo.Message)); } if (e.SendInfo.Filesize > 0) { _tcpmoduleServer_ShowStatusMessage("Файл: " + e.SendInfo.Filename); } }