Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2016, 17:12   #1
Наталья Баева
Форумчанин
 
Регистрация: 25.04.2012
Сообщений: 128
По умолчанию Передача файлов и данных по сети

Задача следующая: передавать данные с сервера на клиент, с одного компьютера на другой, по протоколу TCP.

Нужно организовать передачу файлов и данных по сети
и соединение обрывается при попытке подключить клиента "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение"
Код:
public partial class Form1 : Form
        {
            string CorS;
 
            public Form1()
            {
                InitializeComponent();
            }
 
            private TcpListener Server;
            private TcpClient remoteClient;
            private TcpClient localClient;
            private Thread thClient;
            private Thread thServer;
            private void btnServer_Click(object sender, EventArgs e)
            {
                Server = new TcpListener(IPAddress.Any, 6785);
                Server.Start();
                thServer = new Thread(() =>
                {
                    remoteClient = Server.AcceptTcpClient();
                    byte[] buffer = new byte[1024];
                    while (remoteClient.Connected)
                    {
                        Array.Clear(buffer, 0, buffer.Length);
                        remoteClient.GetStream().Read(buffer, 0, 1024);
                        string strData = Encoding.Default.GetString(buffer);                   
                    }
                });
                thServer.Start();
                CorS = "s";
                ClientServer();
            }
 
            private void btnConnect_Click(object sender, EventArgs e)
            {
                localClient = new TcpClient();
                 System.Net.IPAddress ip = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0];
            localClient.Connect(ip, 8000);// выдает ошибку "подключение не удалось"
                thClient = new Thread(() =>
                {
                    while (localClient.Connected)
                    {
                        byte[] buffer = new byte[1024];
                        while (localClient.Connected)
                        {
                            Array.Clear(buffer, 0, buffer.Length);
                            localClient.GetStream().Read(buffer, 0, 1024);
                            string strData = Encoding.Default.GetString(buffer);                        
                        }
                    }
                });
                thClient.Start();
                CorS = "c";
                ClientServer();
            }
 
 
            #region //Клиент сервер
            public void ClientServer()
            {
                if (CorS == "c")
                {
                  //Если подключен клиент то выводить файлы и папки с компьютера-сервера
                }
                //else if (CorS == "s")
                //{
                    
                //}
            }
            #endregion
 
 
 
 
            #region //ВЫВОД ФАЙЛОВ
            public static string FPath;
            public static string backPath;
            List<string> ls = new List<string>();
 
            public static string GetLocDir()
            {
                String[] LogicalDrives = Environment.GetLogicalDrives();
                string dir = String.Join("/", LogicalDrives);
                return dir;
            }
 
            public static string GetDirectories()
            {          
                string[] dir = Directory.GetDirectories(FPath);
                string poddir = String.Join("/", dir);
                return poddir;
            }
           
            public static string GetFiles()
            {
                string[] files = Directory.GetFiles(FPath);
                string file = String.Join("/", files);
                return file;
            }
 
           public void listView1_ItemActivate(object sender, EventArgs e)
           {
            //    if (listView1.SelectedItems.Count == 0)
            //        return;
            //    ListViewItem item = listView1.SelectedItems[0];
            //    if (item.ImageIndex == 1)
            //    {
            //        string it = item.Text;
            //        string title = "";
            //        foreach (string s in ls)
            //        {
            //            try
            //            {
            //                if (s.Substring(s.Length - it.Length, it.Length) == it)
            //                {
            //                    FPath = s;
            //                    title = s;
            //                }
            //            }
            //            catch { }
            //        }
            //        try
            //        {
            //            string[] dirs = Directory.GetDirectories(FPath);
            //            this.Text = title;
            //            GetFiles();
            //        }
            //        catch (Exception ex) { MessageBox.Show(ex.Message); }
            //    }
            //    else if (item.ImageIndex == 0)
            //    {
            //        string start = this.Text + "" + item.Text;
            //        System.Diagnostics.Process.Start(start);
            //    }
           }
           #endregion
 
           private void Form1_FormClosed(object sender, FormClosedEventArgs e)
           {
               if (Server != null) Server.Stop();
               if (remoteClient != null && remoteClient.Connected) remoteClient.Close();
               if (localClient != null && localClient.Connected) localClient.Close();
           }
 private void btnDownload_Click(object sender, EventArgs e)
       {
            //загрузка выбранного файла
       }
 
        }
Изображения
Тип файла: jpg Снимок.JPG (26.8 Кб, 137 просмотров)
Наталья Баева вне форума Ответить с цитированием
Старый 20.05.2016, 18:59   #2
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

...порты открыты? Соединение в Интранет или через Интернет?
kutani вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача файлов по сети Shouldercannon Работа с сетью в Delphi 0 19.01.2016 15:30
передача файлов по сети SPD Общие вопросы Delphi 7 10.06.2011 00:24
Передача файлов по сети SL1CK Работа с сетью в Delphi 3 05.12.2009 00:08
Передача файлов по сети Sparky Общие вопросы Delphi 5 31.10.2009 19:34