how to send an image in tcp server

Yairk_kaufmann 6 Reputation points
2021-03-25T20:55:23.577+00:00

I'm making a chat and I want to make an option to send a picture, how to do that?

Server code:

using SimpleTcp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Server
{
    public partial class Form1 : Form
    {
        IList<string> Clients = new List<string>() {};
        int h = 0;
        public Form1()
        {
            InitializeComponent();

        }

        SimpleTcpServer server;

        private void Form1_Load(object sender, EventArgs e)
        {
            server = new SimpleTcpServer(txtIP.Text);
        }


        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {

        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            server.Start();
            server.Events.ClientConnected += Events_ClientConnected;
            server.Events.ClientDisconnected += Events_ClientDisconnected;
            server.Events.DataReceived += Events_DataReceived;

            btnStart.Enabled = false;
        }

        private void Events_DataReceived(object sender, DataReceivedEventArgs e)
        {
            if (h <= Clients.Count + 1)
            {
                for (int i = 0; i < Clients.Count; i++)
                {
                    server.Send(Clients[i], $"{e.IpPort}: {Encoding.UTF8.GetString(e.Data)} {Environment.NewLine}");
                }


            }
            else
            {

                h = 0;
            }

            //string l = server.GetClients().ToString();
            //server.Send(l, $"{e.IpPort}: {Encoding.UTF8.GetString(e.Data)} {Environment.NewLine}");
        }

        private void Events_ClientDisconnected(object sender, ClientDisconnectedEventArgs e)
        {

        }

        private void Events_ClientConnected(object sender, ClientConnectedEventArgs e)
        {
            //lstClients.Items.Add(e.IpPort);
            Clients.Add(e.IpPort);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

Client code:

using SimpleTcp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Socil
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        SimpleTcpClient client;

        private void Form1_Load(object sender, EventArgs e)
        {
            client = new(txtIP.Text);
            client.Events.Connected += Events_ClientConnected;
            client.Events.DataReceived += Events_DataReceived;
            client.Events.Disconnected += Events_ClientDisconnected;
        }

        private void Events_ClientDisconnected(object sender, ClientDisconnectedEventArgs e)
        {

        }

        private void Events_DataReceived(object sender, DataReceivedEventArgs e)
        {
            this.Invoke((MethodInvoker)delegate
            {
                richTextBox1.Text += Encoding.UTF8.GetString(e.Data);
            });

        }

        private void Events_ClientConnected(object sender, ClientConnectedEventArgs e)
        {

        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                client.Connect();
                button1.Enabled = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "messege", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnSebd_Click(object sender, EventArgs e)
        {
            client.Send(txtMessege.Text);
        }
    }
}
Windows Forms
Windows Forms
A set of .NET Framework managed libraries for developing graphical user interfaces.
1,837 questions
C#
C#
An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
10,294 questions
{count} votes