Как сделать так чтобы клиент видел не только свои но и чужие сообщения - C#

Узнай цену своей работы

Формулировка задачи:

В общем такой вопрос, есть чат состоящий из сервера и клиетнта, каждый клиент работает в своем потоке. Так вот при отправке сообщений, свои сообщения в окне чата клиент видит, а чужие нет. Сервер видит всех, и прекрасно в консоль весь чат выводит. Как сделать так чтобы клиент видел не только свои но и чужие сообщения. Вот код клиента, он неоптимизирован я знаю, только начал делать.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Net.Sockets;
 
namespace client2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public int port = 5048;
        public string adress = "192.168.100.189";
        public string name = "";
        private void Reg()
        {
            TcpClient client = new TcpClient(adress, port);
            NetworkStream NWS = client.GetStream();
            BinaryReader R = new BinaryReader(NWS);
            BinaryWriter W = new BinaryWriter(NWS);
            name = textBox1.Text;
            W.Write(name+" is log in");
            listBox1.Items.Add(R.ReadString().ToString().Trim());
        }

        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Reg();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            TcpClient client = new TcpClient(adress, port);
            NetworkStream NWS = client.GetStream();
            BinaryWriter W = new BinaryWriter(NWS);
            BinaryReader R = new BinaryReader(NWS);
            W.Write(name+":"+textBox3.Text);
            listBox1.Items.Add(R.ReadString().ToString().Trim());
        }
    }
}
Все еще актуально, если кто знает как еще чат организовать получше(если мой подход не верен в корне), буду благодарен.

Решение задачи: «Как сделать так чтобы клиент видел не только свои но и чужие сообщения»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.IO;
using System.Threading;
using System.Net;
 
namespace Server
{
    class Program
    {
        public class Connection
        {
            public TcpClient cl;
            public void Work()
            {
                NetworkStream NWS = cl.GetStream();
                BinaryReader R = new BinaryReader(NWS);
                BinaryWriter W = new BinaryWriter(NWS);
                string list = R.ReadString();
                if (list != null)
                {
                    Console.WriteLine(list.ToString());
                    W.Write(list.ToString());
                }
 
            }
        }
        static void Main(string[] args)
        {
            IPAddress ipmain=null;
            IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());
            foreach(IPAddress i in ip)
            {
                ipmain = i;
            }
            Console.WriteLine("Chat Server, version 1.0.0.0");
            TcpListener l = new TcpListener(ipmain,5048);
            l.Start();
            Console.WriteLine("The server is started");
 
            while (true)
            {
                TcpClient cl = l.AcceptTcpClient();
                Connection c = new Connection();
                c.cl = cl;
                Thread t =new Thread(new ThreadStart(c.Work));
                t.IsBackground = false;
                t.Start();
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы