Enviar cadena string mediante socket TCP a un puerto con C#

Diferentes aplicaciones, o incluso la misma tras el modelo cliente/servidor, pueden necesitar enviarse información mediante la red, usando el protocolo TCP/IP.

De esta manera, enviar cadenas de texto a un puerto de un servidor con una aplicación que tenga un socket esperando para leer datos es muy sencillo con C#

Usaremos la clase TcpClient, que se encarga de crear un socket para enviar y recibir datos a través de la red.

Primero de todo referenciaremos dos librerías:

using System.Net.Sockets;
using System.IO;

Tras esto, creamos un objeto TcpClient y escribimos un texto ascii enviandolo al puerto de un servidor:

Stream Stm = null;
byte[] bufferEscritura = null;

TcpClient tcpClnt = new TcpClient();
  
// Conecto el socket al servidor.
tcpClnt.Connect("nombre_servidor", 9876);
Stm = tcpClnt.GetStream();

if (Stm.CanWrite)
{
    bufferEscritura = Encoding.ASCII.GetBytes("texto a enviar");

    if ((Stm != null))
    {
        //Envio los datos al Servidor
        Stm.Write(bufferEscritura, 0, bufferEscritura.Length);
    }
}

tcpClnt.Close();
tcpClnt = null;

Cuando se llama al método Connect, sustituir el nombre del servidor y puerto del ejemplo por aquel donde queráis enviar vuestra cadena de texto ascii.

 

10378 visitas.

2 comentarios sobre “Enviar cadena string mediante socket TCP a un puerto con C#

  1. Muy buen ejemplo para ensayar esta comunicación.
    Cómo sería el código para mostrar los datos que se reciben desde el servidor?
    Muchas gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *