Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
dystopiate
3 / 3 / 1
Регистрация: 17.04.2011
Сообщений: 45
1

Клиент-серверное приложение не работает через интернет

17.04.2011, 16:24. Просмотров 2580. Ответов 7
Метки нет (Все метки)

Тема такая есть сервер(TCPListener) и клиент(TCPClient) приложения в локальной сети работаю без проблем а через интернет нет почемуто=(ну я бросил его и переписал на сокетах история такаяже в локалке пашет а через инет нет=(интернет у меня такой на компе DSL а на ноуте мегафон интернет через USB модем.Я вот что думаю у меня есть теория что это иза модема ну или может я не тот способ подключения использую=(Поделитесь кто может простейшими примерами клиента и сервера работающих именно через интернет


P.s. где я только не искал и результат либо сокеты либо TCPListener
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2011, 16:24
Ответы с готовыми решениями:

Клиент-серверное приложение, взаимодействующее с сайтами в Интернет
здравствуйте. Решил создать приложение, которое будет взаимодействовать с сайтами в интернет, но...

Клиент-серверное приложение: как определить, что сервер/клиент не отвечает в течении определенного времени
Пишу клиент-серверное приложение. Использую TCPListener и TCPClient. Вопрос: как определить что...

клиент-серверное приложение
собственно проблема заключается в том, что при запуске клиента, и нажатии на кнопку (отправление...

Клиент-серверное приложение
Клиент-серверное приложение между процессов с помощью именованых каналов Здравствуйте. Тут...

Клиент-серверное приложение
Заинтересовался написанием клиент-серверных приложений, с чего начать? что написать? есть ли...

7
Kayak
10 / 10 / 1
Регистрация: 02.04.2011
Сообщений: 95
17.04.2011, 16:41 2
Покажи свой код, я последнее время тоже клиент-сервер мучаю.
0
Lavios
63 / 63 / 8
Регистрация: 27.01.2011
Сообщений: 250
17.04.2011, 16:43 3
Цитата Сообщение от dystopiate Посмотреть сообщение
Тема такая есть сервер(TCPListener) и клиент(TCPClient) приложения в локальной сети работаю без проблем а через интернет нет почемуто=(ну я бросил его и переписал на сокетах история такаяже в локалке пашет а через инет нет=(интернет у меня такой на компе DSL а на ноуте мегафон интернет через USB модем.Я вот что думаю у меня есть теория что это иза модема ну или может я не тот способ подключения использую=(Поделитесь кто может простейшими примерами клиента и сервера работающих именно через интернет


P.s. где я только не искал и результат либо сокеты либо TCPListener
Адресса статичны?
0
dystopiate
3 / 3 / 1
Регистрация: 17.04.2011
Сообщений: 45
17.04.2011, 17:13  [ТС] 4
вот по этому примеру я свое собирал(это на сокетах)TCPListener ну нафиг=)
сервер
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,      ProtocolType.Tcp); //Создаем основной сокет
        IPAddress ipAddress = null; //IP-адресс
        IPEndPoint Addr = null; //конечная точка(IP и порт)
                Addr = new IPEndPoint(IPAddress.Any, 5300); //"localhost" = 127.0.0.1
                s.Bind(Addr); //"Адресуем" сокет
                s.Listen(10); //Обозначаем количество ожидающих в очереди на подключение
                Console.WriteLine("Ждем коннекта...");
                Socket cl_s = s.Accept(); //Ожидаем подключения
                Console.WriteLine("Есть коннект!");
                while (!Console.KeyAvailable) //Пока не нажата клавиша
                {
                    byte[] msg = new byte[cl_s.Available];
                    cl_s.Receive(msg); //Принимаем МСГ
                    Console.WriteLine(Encoding.UTF8.GetString(msg)); //Конвертируем и выводим
                }
                cl_s.Close(); //Закрываем сокет
клиент
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //Создаем основной сокет
        IPAddress ipAddress = null; //IP-адресс
        IPEndPoint Addr = null; //конечная точка(IP и порт)
                Console.Title = "Client"; //Клиент
                ipAddress = Dns.GetHostEntry("localhost").AddressList[0];
                Addr = new IPEndPoint(IPAddress.Any, 5300); //"localhost" = 127.0.0.1
                s.Connect(Addr); //Коннектимся к срверу
                while (true) //Вечная истина :)
                {
                    byte[] msg = Encoding.UTF8.GetBytes(Console.ReadLine()); //Конвертируем
                    s.Send(msg); //Отправляем
                }
                break;
        }
        s.Close(); //Закрываем сокет
        Console.ReadKey();

адреса динамичные но меня.тся только при рестарте можема любого

Добавлено через 19 минут
Вот кстати когда искал инфу нашел исходники чата на сокетах к сожалению он тоже не работает=(
ссылка удалена
 Комментарий модератора 
ссылки на файлообменники запрещены
0
17.04.2011, 17:13
Lavios
63 / 63 / 8
Регистрация: 27.01.2011
Сообщений: 250
17.04.2011, 22:13 5
Файрвол глушит порт? мб ты под NAT'ом?
1
dystopiate
3 / 3 / 1
Регистрация: 17.04.2011
Сообщений: 45
18.04.2011, 05:13  [ТС] 6
кароче как выяснилось все дело в NAT=( нашел выход юзать no-ip токо теперь проблема как все это реализовать?точнее подключение было на удаленый IP а теперь то клиент получается подключается к no-ip а с него идет на серва слушающий порт по идее так?вот токо вопрос как подключаться к URL заместо IP?
0
wildboar47
0 / 0 / 0
Регистрация: 18.03.2012
Сообщений: 1
21.03.2012, 12:16 7
dystopiate, блин я вот тоже пытаюсь решить эту проблему. если подключен напрямую все ок, а если через роутер то даже с переброской портов ничего не передается (кстати, под win xp все работало через роутер почему-то, а под win7 нет. брандмауэр отключен.) как это решить и как использовать no-ip ??

Добавлено через 17 минут
Возможно на роутере нужно настроить NAT, это поможет?
0
Fourd
97 / 97 / 46
Регистрация: 21.03.2012
Сообщений: 378
21.03.2012, 20:30 8
Доброго времени, я работаю над приложением мгновенного обмена сообщениями и тоже использую сокеты.
Увидел вашу тему, посмотрел решил проверить свою программу:
в случае если код будет таким
C#
1
2
3
4
5
6
7
8
9
10
11
12
            IPHostEntry ipHost = Dns.Resolve(Dns.GetHostName());
            IPAddress ipAddr = ipHost.AddressList[0];
            IPEndPoint localEnd = new IPEndPoint(ipAddr, 25000);
 
            Socket sListener = new Socket(AddressFamily.InterNetwork,
                SocketType.Stream, ProtocolType.Tcp);
 
            //связываем сокет
            sListener.Bind(localEnd);
 
            //начинаем слушать
            sListener.Listen(10);
подключение по локальной сети происходит, а по интернету нет, но если в строчке
C#
1
            IPHostEntry ipHost = Dns.Resolve("0.0.0.0");
указать свой Ip-адрес(где "0.0.0.0") то подключение происходит.

Я работаю с сокетами очень мало и если это не то что вам нужно извините , а если помог, то я только рад.
ЗЫ: Учусь по книжке NET. Сетевое программирование для профессионалов
0
21.03.2012, 20:30
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2012, 20:30

Закрывается клиент-серверное приложение
Здравствуйте, делаю что то типа клиен-сервера. Использую сокеты. При подключении с клиента на...

Асинхронное клиент серверное приложение
Всем доброго времени суток, а так же спасибо всем кто загляну и не прошёл мимо. Сразу...

Как написать клиент-серверное приложение
Привет всем, хочу написать сервер.Пересмотрел кучу уроков и статей и т.д. ,но там нет подробного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.