Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/64: Рейтинг темы: голосов - 64, средняя оценка - 4.78
8 / 8 / 0
Регистрация: 29.07.2010
Сообщений: 47

Чат на C#. Не могу подключиться к серверу.

26.08.2010, 05:39. Показов 12215. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил сделать простенький чат. Совсем простой. Принимает сообщение и отсылает его клиенту. Со своего компьютера все работает нормально, при попытке подключения к чужому выскакивает: "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение 127.0.0.1:3000".

C#
1
2
3
4
5
6
7
8
9
10
11
            int port = 3000;
            IPAddress adress = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(adress, port);
            listener.Start();
            while (true)
            {
                client = listener.AcceptTcpClient();
                Thread thread1 = new Thread(new ThreadStart(Read));
                thread1.IsBackground = false;
                thread1.Start();
            }
Т.е. все прослушивается. Файрвол отключил, антивирь тоже. В чем причина?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.08.2010, 05:39
Ответы с готовыми решениями:

Не могу подключиться к серверу по FTP ошибка Превышено время ожидания соединения, Ошибка:Невозможно подключиться к серверу
Всем доброго настроения! ПЫтался подключиться через две программы с разных компов (точнее компа было два). Суть: Хостер предоставил мне...

Не могу подключиться к серверу
Не могу подключиться к серверу на программе Oracle Developer, в окне создания и подключения когда введу все данные и засейвлю пишет что...

Не могу подключиться к серверу
Вот такая ошибка, сервер называется max_server. Помогите плз

11
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
26.08.2010, 17:58
C#
1
IPAddress adress = IPAddress.Parse("127.0.0.1");
это локальный адрес твоего компьютера, как раз для тестирования подходит
что бы подключиться к чужому, необходимо ввести туда адрес ЧУЖОГО компа.
так же возможно что порт 3000 будет закрыт.
если это будет клиент, то ввести нужно адрес сервера, а сервер должен будет отсылать на адрес клиента, но уже не на 127.0.0.1!!!
1
8 / 8 / 0
Регистрация: 29.07.2010
Сообщений: 47
30.08.2010, 15:11  [ТС]
У меня теперь другая проблема. Сервер шлет сообщение клиентам бесконечное число раз, хотя я и строку сообщения обнуляю, и сами потоки обнулять пробовал. Шлет и хоть ты тресни. Подскажите, в чем проблема?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
private void button1_Click(object sender, EventArgs e)
        {
            int port = 3000;
            IPAddress adress = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(adress, port);
            listener.Start();
            while (true)
            {
                client = listener.AcceptTcpClient();
                htUsers.Add(pr, client);
                pr++;
                thread1 = new Thread(new ThreadStart(Read));
                thread1.Start();
            }
        }
 
        public void Read()
        {
            try
            {
                while (true)
                {
                    tcpClients = new TcpClient[htUsers.Count];
                    htUsers.Values.CopyTo(tcpClients, 0);
                    for (int i = 0; i < tcpClients.Length; i++)
                    {
                        reader = new StreamReader(tcpClients[i].GetStream());
                        str = reader.ReadLine();
                        if (str != "" & str != null)
                        {
                            Write();
                            str = null;
                        }
                    }
 
                }
 
            }
            catch { }
        }
 
        public void Write()
        {
            for (int i = 0; i < tcpClients.Length; i++)
            {
                try
                {
                    swSenderSender = new StreamWriter(tcpClients[i].GetStream());
                    swSenderSender.WriteLine(str);
                    swSenderSender.Flush();
                }
                catch
                {
                    htUsers.Remove(tcpClients[i]);
                }
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int port = 3000;
            IPAddress adress = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(adress, port);
            listener.Start();
            while (true)
            {
                client = listener.AcceptTcpClient();
                htUsers.Add(pr, client);
                pr++;
                thread1 = new Thread(new ThreadStart(Read));
                thread1.Start();
            }
        }
0
Padawan
 Аватар для Johnny_D
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
30.08.2010, 15:28
может быть потому что у тебя все в бесконечном цикле?
0
8 / 8 / 0
Регистрация: 29.07.2010
Сообщений: 47
30.08.2010, 16:30  [ТС]
Так строка же обнуляется после цикла каждый раз. По идее, только после нового сообщения опять отсылать должно.

Добавлено через 55 минут
Все, прошу прощения. Все время на сервер смотрел, а не на клиент. А он с текбокса сразу данные берет. Вот и отсылает бесконечно)
0
Padawan
 Аватар для Johnny_D
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
30.08.2010, 17:45
Lottarend, да бывает. Иногда сам часами смотрю и не вижу.
0
8 / 8 / 1
Регистрация: 20.07.2010
Сообщений: 22
31.08.2010, 14:12
Попробуй сделать сервер через web-service, а клиентов приложениями. И все сразу упростится. По сути веб сервис у тебя будет тем же приложением, только хостится в IIS, что снимет с тебя кучу проблем. Ну а если хочется делать децентрализованно, или сервер приложением простым, можно посмотреть сюда:
http://msdn.microsoft.com/ru-r... tener.aspx

Сокеты использовать можно, но лучше идти на более высокий уровень. И использовать стандартный http, тогда общение через инет не зарежется на фильтрах и файерволах.
0
8 / 8 / 0
Регистрация: 29.07.2010
Сообщений: 47
08.09.2010, 17:55  [ТС]
Временно был без интернета. По поводу web-service - мне бы с Windows Forms для начала разобраться... А потом уже на что-то иное переходить.
Опять возник вопрос. Опять по поводу подключения. Не понимаю я.
Вот, допустим, при создании сервера, для TcpListener, пишу я локальный адрес копьютера(127.0.0.1). Клиент подключается к моему ip-шнику, но виснет. "Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера 87.226.156.147:1567". Объясните мне, все я правильно делаю?
0
85 / 84 / 8
Регистрация: 03.11.2009
Сообщений: 723
08.09.2010, 21:13
код подключения и сервера и клиента в студию!!!
0
8 / 8 / 0
Регистрация: 29.07.2010
Сообщений: 47
09.09.2010, 02:28  [ТС]
Готово. Там... еще одна проблемка обнаружилась. В комментариях написал. Посмотрите, если не сложно)
Вложения
Тип файла: rar WindowsFormsApplication10.rar (51.4 Кб, 266 просмотров)
0
8 / 8 / 0
Регистрация: 29.07.2010
Сообщений: 47
09.09.2010, 04:21  [ТС]
Проблема решилась созданием массива потоков) Но это не к проблеме с подключением. Там у меня по-прежнему все виснет.
0
8 / 8 / 0
Регистрация: 29.07.2010
Сообщений: 47
11.09.2010, 14:02  [ТС]
Ну так, что? Ответа мне ждать? Хотелось бы добить уже этот чат несчастный... Скажите хотя бы, из-за чего подключение может виснуть. К своему компьютеру то нормально коннектится, проблем по идее быть не должно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2010, 14:02
Помогаю со студенческими работами здесь

Не могу подключиться к серверу
В базах данных вообще не шарю. Но для диплома надо накатать маленькую БД. Скачала MySQL и даже не могу подключиться к БД (которая...

Не могу подключиться к серверу
установил ms sql server 2008 r2. при установке пароль сделал единичку при авторизации вылетает сообщение помогите решить

Не могу подключиться к серверу Firebird
Установил Linux ubuntu-14.04.3-server-amd64. Затем установил FireBird 2.5-super. Под Linux-ом подключение к серверу и БД проходит без...

Не могу подключиться к Windows серверу
Leopard 10.5.7. iDeneb пробую подключиться к windows серверу с помощью переход - подключиться к серверу ввожу smb://192.168.1.1 на что...

Не могу подключиться к VPN-серверу
Всем привет! PPTP сервер поднят на Микротике. Подключается без особых проблем. Один казус был у человека - не подключался через роутер...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru