2009-09-11 14 views
9

¿Hay alguna biblioteca compatible con redes/zócalos Mono (C#)?Biblioteca de zócalo/red compatible mono

Preferiblemente algo que es:

  • multihilo
  • por eventos
  • capaz de múltiples conexiones
  • Manijas de cliente y servidor piezas
  • se ejecuta en tiempo de ejecución Mono y MS .NET
  • Muy simple
  • Gratis (y usable i n software comercial)

También sería muy grande si era:

  • .NET Compact Framework (Windows Mobile) compatibles
  • MonoTouch (iPhone) compatibles

Editar:

Para aclarar más, lo que quise decir con mi "nivel uno bove TCP/IP "el comentario fue que quiero algo que sea básicamente un servidor/cliente autónomo. Yo no quiero tener que lidiar con la escritura del código enhebrado, el manejo de cada conexión, etc. Por ejemplo, me encantaría que el código para tener este aspecto:

Server s = new Server(8080); 
s.NewConnection += new ConnectionEventHandler(NewConnection); 
s.DataRecieved += new DataEventHandler(NewData); 
s.Start(); 

void NewConnection(object sender, EventArgs e) 
{ 
    s.Send((Connection)sender, "Hello World!"); //(Connection)sender is the connection instance so the server knows which to send the response to 
} 

void NewData(object sender, EventArgs e) 
{ 
    s.Send((Connection)sender, e.Data); //Echo back 
} 

No es el código más limpio, pero creo da la idea básica.

+0

¿Te refieres a enchufes IP? Me sorprendería que alguien se haya molestado en escribir una pila de red completa, dado todo en System.Net y System.Net.Sockets. Supongo que podría haber algunas bibliotecas de contenedor para agregar una mejora específica. Sin embargo, no puedo pensar en un ejemplo. – sipwiz

+1

Sí, quiero decir IP Sockets. Y claro, puedo usar las clases de socket estándar, pero cada vez que lo hago es lo mismo una y otra vez. Tengo que manejar todas las cosas de multi-threading/async * otra vez * Solo que pensé que en este momento eso ya se había hecho básicamente ... Estoy buscando algo que esté 1 nivel por encima de TcpClient y TcpListener. –

Respuesta

4

Algo como esto ahora existe, pago networkComms.net. Hace todas las cosas que necesita y también es 100% compatible con mono.

Descargo de responsabilidad: Soy uno de los desarrolladores de esta biblioteca comercial.

+0

Este proyecto fue comercial completo. ¿Hay alguna nueva alternativa? – Sonny

+1

@Sonny - Si está contento con la versión anterior, entonces todavía está disponible en GPL - http://www.networkcomms.net/download/gpl/ – MarcF

+0

No puedo hacer que funcione. – Sonny

0

No tengo claro qué es exactamente lo que esperas de una clase que está "un nivel por encima de TcpClient y TcpListener"?

TcpClient/TcpListener son los componentes básicos que debe utilizar para el desarrollo. No estoy seguro si también son compatibles con Mono, pero si lo son, entonces debería ser todo lo que necesita.

.Net CompactFramework también es compatible con estos, aunque no estoy seguro acerca de Mono Touch.

+0

Por "un nivel superior" quiero decir que no quiero ocuparme de escribir el código de enhebrado, manejar múltiples conexiones, etc ... ver la pregunta actualizada más arriba ... –

1

No, no hay nada fuera de la caja que haga lo que quiera.

TcpClient/TcpListenr ya están un nivel arriba de la clase Socket. Si realmente quiere algo que sea aún más simple, es una tarea muy fácil ajustar TcpListener() y hacer que exponga los puntos de entrada del controlador de eventos que desee.

+0

Extraño ... parece raro que esto no haya ocurrido Ya se ha hecho. Cada vez que hago algo que usa sockets, termino escribiendo básicamente el mismo código una vez más ... pensé que alguien ya lo habría hecho y empacado en una buena biblioteca. –

1

Deberías echar un vistazo a RemotingLite. Lo uso con mis aplicaciones Mono. Fue desarrollado para ayudar en el aspecto de red de la Biblioteca de Computación Distribuida MPAPI. MPAPI tenía el objetivo de ser 100% compatible con Mono.