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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2016, 09:39   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию Поиск ошибки. Клиент-сервер.

Работа через UDP клиент. Никак не могу отловить ошибку, помогите поправить. Есть клиент и сервер, они работают по протоколу udp. Если на одном компьютере запустить, все хорошо, файлы шлются в обе стороны. Но если на разных, в одной локальной сети, то отправка с клиента на сервер файла работает, а в обратную сторону нет. Можете подсказать в чем беда? тоесть не выполняется команда down , хотя от клиента к серверу она доходит и сервер пишет что отправил файл, но клиент его не ловит. Как поправить?

p.s. Управление осуществляется только с клиента.

Управление я сделал следующими командами:

Отправить файл с клиента на сервер
send путь_к_файлу. Например

Код:
send C:\Users\Acer\123.png
Загрузить файл с сервера на клиент
down путь_к_файлу. Например

Код:
down C:\Users\Acer\123.png
Завершить сеанс
Код:
exit
Сервер

http://pastebin.com/Jwys4Hj5

Клиент

http://pastebin.com/i0mVi2hu


Залил на пастебин чтоб наглядно все видно было. Спасибо.
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 28.09.2016, 13:59   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код:
  static void Main(string[] args)
        {
            try
            {
                IPHostEntry ipHost = Dns.GetHostByName(Dns.GetHostName());
                remoteIPAddress = ipHost.AddressList[0];
                endPoint = new IPEndPoint(remoteIPAddress, remotePort);
                Console.WriteLine("Сервер подключен к {0} Слушает порт {1}", endPoint, localPort);
                receiveThread = new Thread(new ThreadStart(ReceiveFile));
                receiveThread.IsBackground = true;
                receiveThread.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.ReadLine();
            }
        }
Т.е. мы сконфигурировали клиента и т.д. Запустили background поток, не дождались его выполнения и вышли. Правильно? На Console.ReadLine() он точно останавливается?
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 28.09.2016, 17:50   #3
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Дак в одну то сторону я шлю нормально все.
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 28.09.2016, 20:05   #4
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Дак в одну то сторону я шлю нормально все

Добавлено через 2 часа 13 минут
Разжуйте одну вещь, походу я затупил.

2 Компа. одна локальная сеть, друг с другом пингуются вообщем

Первый комп имеет ип пусть 10.0.0.1
Второй комп имеет ип пусть 10.0.0.2

Ставим сервер на 1 компе. К порту подключаемся например к третьему, тоесть 10.0.0.1:3. Слушаем 4 порт
Ставим клиент на 2 компе.К порту соответственно должен подключиться к 4му, и слушать третий.

Вопрос, на клиенте то ип для подключения к 4му порту должен быть ип 10.0.0.2(ип того компа на котором запущен клиент) или ип сервера? тоесть клиент должен подключиться к 10.0.0.1:4 или к 10.0.0.2:4 ?

Просто может поэтому я в одну сторону слал,потому что и клиент и сервер подключались к ипу, на котором стоит сервер стоит,а в обратную не хотел. Подскажите этот момент?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 28.09.2016, 20:16   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

подключатся надо к тому к кому хотите отправить данные.
вообще для этого можно и один порт юзать..
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.09.2016, 20:48   #6
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Вот я затупил. Смотрите я на сервере автоматом получал ип компа на котором он запущен. А клиент запускал на втором компе с айпи сервера на первом компе, соответственно я и слал от клиента к серверу без проблем и файл и сообщения, а обратно не мог, ибо сервак должен был быть подключен к айпи КЛИЕНТА , тоесть второго компа, где клиент установлен.

Соответственно сервер поэтому не мог отправить данные клиенту, так как не указан был его ип адрес, все верно?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 28.09.2016, 20:51   #7
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

И следовательно поэтому все работает в обе стороны если запущено все на одном компе. Логично же? так как в этом случае ип и там и там одинаковый
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 28.09.2016, 21:33   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Соответственно сервер поэтому не мог отправить данные клиенту, так как не указан был его ип адрес, все верно?
его это чей?
просто шлите адрес в ответ на IP из соединения и все.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.09.2016, 09:04   #9
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Вот картинку нарисовал, посмотрите

a.n.o.n.i.m вне форума Ответить с цитированием
Старый 29.09.2016, 10:37   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

слушать чужой IP вы тоже не можете
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
Клиент->Сервер->Клиент RODNOC Работа с сетью в Delphi 0 25.09.2010 11:49
сервер+клиент+клиент на телефон Razyiller Работа с сетью в Delphi 3 01.04.2010 20:10
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18