Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача файлов и данных по сети  (Прочитано 672 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Emiliya_Emili
Интересующийся

ru
Offline Offline
Пол: Женский

« : 20-05-2016 14:28 » 

Задача следующая: передавать данные с сервера на клиент, с одного компьютера на другой, по протоколу 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;
            }
 
       
            private void btnDownload_Click(object sender, EventArgs e)
       {
            //загрузка выбранного файла
       }
 
        }


Код:
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);
            //    }
           }

* Снимок.JPG (26.8 Кб - загружено 27 раз.)
Записан
Qulac
Постоялец

ru
Offline Offline

« Ответ #1 : 20-05-2016 15:09 » 

Так порты у вас разные 6785 и 8000.
Записан
Emiliya_Emili
Интересующийся

ru
Offline Offline
Пол: Женский

« Ответ #2 : 20-05-2016 15:10 » 

это уже исправила, но все равно не работает
Записан
Qulac
Постоялец

ru
Offline Offline

« Ответ #3 : 20-05-2016 15:15 » 

Что говорит?
Записан
Emiliya_Emili
Интересующийся

ru
Offline Offline
Пол: Женский

« Ответ #4 : 20-05-2016 15:15 » 

 "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение"
Записан
Emiliya_Emili
Интересующийся

ru
Offline Offline
Пол: Женский

« Ответ #5 : 20-05-2016 15:30 » 

вот что сейчас
Код: (C#)
 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();
            localClient.Connect("127.0.0.1", 6785);
            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();
        }
Записан
Qulac
Постоялец

ru
Offline Offline

« Ответ #6 : 20-05-2016 15:52 » 

У меня все запускается, наверное брандмауэр windows блокирует. Было всплывающие окно брандмауэра при запуске программы?
Записан
Emiliya_Emili
Интересующийся

ru
Offline Offline
Пол: Женский

« Ответ #7 : 20-05-2016 16:00 » 

уже  смогла решить
теперь пытаюсь отображение дисков реализовать но не как  не получается
если сервер то отправлять данные если клиент то принимать и отображать
Код: (C#)
        #region //Клиент сервер
        public void ClientServer()
        {
            string infoToSend = GetLocDir();
            byte[] dataToSend = Encoding.Default.GetBytes(infoToSend);
            if (CorS == "c")
            {
                     
            }
            else if (CorS == "s")
            {
                if (localClient != null && localClient.Connected)
                {
                    localClient.GetStream().Write(dataToSend, 0, dataToSend.Length);
                }
                else if (remoteClient != null && remoteClient.Connected)
                {
                    remoteClient.GetStream().Write(dataToSend, 0, dataToSend.Length);
                }
            }
        }
        #endregion
« Последнее редактирование: 20-05-2016 16:02 от Emiliya_Emili » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines