Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: rigorvzla en 7 Febrero 2019, 15:27 pm



Título: Implementacion de Socket
Publicado por: rigorvzla en 7 Febrero 2019, 15:27 pm
hola amigos como estan, eh incursionado en esta parte que es el intercanbio de datos de 2 pc, resulta que eh leido sobre sockets y signalR inclinandome a socket que me parecio mas simple de usar aparte de conseguir muchos ejemplos faciles de entender, en este ejemplo que els dejare explica como enviar y recibir datos , mas no dice como puedo hacer que quede abierto y no se cierre luego de recibir el primer dato, alguien me puede ayudar a como mantener la conexion abierta para poder enviar datos  seguidamente ?
teniendo en cuenta que esto no funciona de manera asincronico , probe con esa forma y no pude hacerlo correr por no saber el problema.
aqui funciona de manera no sincronica lo que implica que si lo corro en wpf se frizara la interfaz

Investigando consegui un codigo que me permite enviar string desde el android al pc y es el siguiente codigo

Código:
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;

class TcpDemo
{
  static void Main(  )
  {
    new Thread (Server).Start(  );      
    Thread.Sleep (500);              
    Client(  );
  }

  static void Client(  )
  {
    using (TcpClient client = new TcpClient ("localhost", 51111))
    using (NetworkStream n = client.GetStream(  ))
    {
      BinaryWriter w = new BinaryWriter (n);
      w.Write ("Hello");
      w.Flush(  );
      Console.WriteLine (new BinaryReader (n).ReadString(  ));
    }
  }

  static void Server(  )     //
  {
    TcpListener listener = new TcpListener (IPAddress.Any, 51111);
    listener.Start(  );
    using (TcpClient c = listener.AcceptTcpClient(  ))
    using (NetworkStream n = c.GetStream(  ))
    {
      string msg = new BinaryReader (n).ReadString(  );
      BinaryWriter w = new BinaryWriter (n);
      w.Write (msg + " right back!");
      w.Flush(  );                    
    }                                
    listener.Stop(  );
  }
}

muy practico, el problema esta que en wpf puede freezar la pantalla y se cierra al recibir solo un dato hay que volver a ejecutarlo para que vuelva a recibir, esto ultimo quisiera mantenerlo espero puedan ayudarme gracias de antemano


Título: Re: Implementacion de Socket
Publicado por: ThunderCls en 28 Febrero 2019, 04:34 am
En Internet hay literalmente miles de codigos, manuales, how-to, etc de programacion de sockets en C# y en cualquier otro lenguaje que exista  :P

https://www.infoworld.com/article/3016922/how-to-work-with-sockets-in-c.html
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/asynchronous-client-socket-example
https://www.codeproject.com/Articles/10649/An-Introduction-to-Socket-Programming-in-NET-using
https://www.codeproject.com/Articles/463947/Working-with-Sockets-in-Csharp
http://csharp.net-informations.com/communications/csharp-socket-programming.htm
https://www.c-sharpcorner.com/article/socket-programming-in-C-Sharp/

....y podria seguir