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

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

06.12.2015, 00:04. Просмотров 1148. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2015, 00:04
Ответы с готовыми решениями:

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

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

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

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

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

Добавлено через 2 часа 51 минуту
есть кто живой?
0
Эксперт .NET
13488 / 10452 / 2749
Регистрация: 17.09.2011
Сообщений: 17,767
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
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 - 2020, vBulletin Solutions, Inc.