Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с передачей данных по локальной сети 
:(
    Опции темы
ParaPik
Дата 7.2.2011, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



У меня такая проблема: пытаюсь сделать обмен данными между двумя компьютерами локальной сети. Одно приложение отправляет данные другое их принимает. Использую классы TcpListener и TcpClient. Вот коды вкратце:
Код

//приложение 1
                try
                {
                    string HostName = (string)LanItemsList.SelectedItem;
                    TcpClient client = new TcpClient(HostName, 13000);                    
                    NetworkStream stream = client.GetStream();
                    
                    List<byte> data = new List<byte>();
                    ...
                    ...
                    stream.Write(data.ToArray(), 0, data.Count);
                    client.Close();
                }
                catch(Exception exc)
                {
                    MessageBox.Show(exc.Message);
                }

//приложение 2(запущено на втором компьютере)
            TcpListener listener = new TcpListener(13000);
            listener.Start();
            NetworkStream stream = listener.AcceptTcpClient().GetStream();
            .......
            stream.Read(data, 0, count);
            .......

            listener.Stop();
 

Проблема заключается в том, что приложение 1 не может подключиться ко второму компьютеру(постоянно выбрасывает исключение). IP адрес определяется корректно. При этом если я запущу оба приложения на одной машине, то все работает нормально.

Помогите, кто чем сможет. Заранее благодарен. 
PM MAIL   Вверх
jonie
Дата 7.2.2011, 16:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



netstat -an сделайте в коммандной строке, посмотрите какой ip адресс слушается. Есть мнение что 127.0.0.1


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
ParaPik
Дата 7.2.2011, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



Да, вы правы. Среди прослушиваемых адресов есть 127.0.0.1:5354.
PM MAIL   Вверх
jonie
Дата 8.2.2011, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



ParaPik, ну, надо либо вешаться на нужный интерфейс, либо на всё подряд. На всё подряд как-то так:
Код

var localhost  = new IPEndPoint(IPAddress.Any, Port);
var lis = new TcpListener(localhost);


Это сообщение отредактировал(а) jonie - 8.2.2011, 08:49


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
ParaPik
Дата 8.2.2011, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



jonie, а почему вы спросили, прослушивается ли адрес 127.0.0.1?
PM MAIL   Вверх
KelTron
Дата 8.2.2011, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: нет
Всего: 38



Цитата(ParaPik @  8.2.2011,  14:55 Найти цитируемый пост)
jonie, а почему вы спросили, прослушивается ли адрес 127.0.0.1?


Цитата(ParaPik @  7.2.2011,  15:04 Найти цитируемый пост)
При этом если я запущу оба приложения на одной машине

127.0.0.1


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
ParaPik
Дата 8.2.2011, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



То есть, как я понял, решить мою проблему без обходных путей нельзя?
PM MAIL   Вверх
WolfTheGrey
Дата 9.2.2011, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: нет
Всего: 2



можно, но надо сделать так, чтоб у твоей программы была алергия на LocalHost (127.0.0.1)
PM MAIL   Вверх
ParaPik
Дата 9.2.2011, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



Цитата(WolfTheGrey @ 9.2.2011,  01:25)
можно, но надо сделать так, чтоб у твоей программы была алергия на LocalHost (127.0.0.1)

А это как?
PM MAIL   Вверх
jonie
Дата 9.2.2011, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



ParaPik, перед аллергией надо читать что вам пишут выше. Например тут: http://forum.vingrad.ru/index.php?showtopi...t&p=2295592


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
ParaPik
Дата 9.2.2011, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



jonie, я делал, как вы советовали. Но это тоже не помогло.
PM MAIL   Вверх
WolfTheGrey
Дата 23.3.2011, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: нет
Всего: 2



1- у тебя точно отображается IP второго компутера?
2- покажи полный код который запрятал в многоточии, может ты просто перегружаешь сокетт, вот и вылетает ошибКо?

Код

List<byte> data = new List<byte>();
...
 ...
stream.Write(data.ToArray(), 0, data.Count);
client.Close();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.