Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
NikkuL
5 / 5 / 4
Регистрация: 20.11.2015
Сообщений: 114
1

Односторонний чат: не работает после первого сообщения

06.12.2015, 00:04. Просмотров 1000. Ответов 3

Есть приложение - односторонний чат, но отправляет только одно сообщение.
Код отправляющего сообщения:
C#
1
2
3
4
5
6
7
8
9
10
private void button1_Click(object sender, EventArgs e)
        {
            TcpClient client = new TcpClient();
            client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 12000));
            StreamWriter sw = new StreamWriter(client.GetStream());            
            sw.AutoFlush = true;
            string msg = textBox1.Text;
            sw.WriteLine(msg);
            client.Close();
        }
Код принимающего сообщения:
C#
1
2
3
4
5
6
7
8
9
10
public Form1()
        {
            InitializeComponent();
            TcpListener listner = new TcpListener(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 12000));
            listner.Start();
            TcpClient client = listner.AcceptTcpClient();
            StreamReader sr = new StreamReader(client.GetStream());
            label1.Text += "Client: " + sr.ReadLine();
            client.Close();
        }
Я, так понимаю, где-то надо вставить цикл, но где?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2015, 00:04
Ответы с готовыми решениями:

Чат через интернет: приложение падает после отправки сообщения
Ребята...тут такая проблема! Есть чат, можно общаться как по локалке, так и по интернету!!! Когда...

Socket TCP: обрывается соединение после первого сообщения
Всем привет! Начал учить сокеты, написал по примере первую программу: клиент и сервер на TCP...

Односторонний чат
Здравствуйте! Планирую сделать что-то типа односторонего чата. Взял за пример чат на скоетах. ...

Односторонний чат
Здравствуйте! Собираюсь сделать что-то типа одностороннего чата. Грубо говоря, в одной "форме-окне"...

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

3
objaa
42 / 42 / 28
Регистрация: 06.07.2011
Сообщений: 353
06.12.2015, 12:27 2
1) public Form1() - конструктор вызывается 1 раз, когда создается объект. (new Form())
2) вы прочли и сразу закрыли поток. (client.Close)
0
NikkuL
5 / 5 / 4
Регистрация: 20.11.2015
Сообщений: 114
06.12.2015, 17:54  [ТС] 3
Хорошо, что же делать то тогда? Куда пихать код? Удаление client.Close() явно не достаточно.

Добавлено через 2 часа 51 минуту
есть кто живой?
0
kolorotur
Эксперт .NET
11320 / 9210 / 2341
Регистрация: 17.09.2011
Сообщений: 15,833
Завершенные тесты: 1
06.12.2015, 19:42 4
Лучший ответ Сообщение было отмечено NikkuL как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void button1_Click(object sender, EventArgs e)
{
    TcpClient client = new TcpClient();
    client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 12000));
    StreamWriter sw = new StreamWriter(client.GetStream());
    sw.AutoFlush = true;
    string msg = textBox1.Text;
    sw.WriteLine(msg);
    client.Close();
}
 
private async void Form1_Load(object sender, EventArgs e)
{
    TcpListener listner = new TcpListener(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 12000));
    listner.Start();
    while (true)
    {
        TcpClient client = await listner.AcceptTcpClientAsync();
        StreamReader sr = new StreamReader(client.GetStream());
        label1.Text += "Client: " + await sr.ReadLineAsync();
        client.Close();
    }
}
Form1_Load подцепите на событие Load формы.
1
06.12.2015, 19:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2015, 19:42

Реклама на форуме после первого сообщения
Нужна помощь в html. Появилась идея сделать на форуме рекламный блок после первого сообщения в...

GTX 1060 хорошо работает после первого старта ПК, после перезагрузки начинают тормозить игры
Такая проблема. Купил MSI GTX 1060 6GB версию, и проблема заключается в том, что большинство игр...

После переноса dle сайта приходят сообщения через связь с администрацией с url первого сайта
При переносе dle сайта с одного хостинга на другой при связи с администрацией приходит на почту...


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

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

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