Tengo una aplicación cliente-servidor que se comunica a través de TCP/IP.
Uso el objeto tipo System.Net.Sockets.Socket
para la comunicación ascnyronous a través de TCP. Básicamente abro los datos de envío/recepción de conexión y cierro la conexión. Y mi implementación se basa en objetos tipo Socket.
Ahora necesito usar un dll de terceros para hacer algo. Este dll espera un objeto de tipo System.IO.Stream
. Así que necesito obtener Stream objeto de mi Socket objeto.
¿Cómo puedo hacer eso?
Gracias.obtener la secuencia de un objeto socket en C#
Respuesta
Bastante simple realmente. El constructor de la clase NetworkStream acepta un enchufe para envolver:
http://msdn.microsoft.com/en-us/library/system.net.sockets.networkstream.aspx
// NOTE: This demonstrates disposal of the stream when you are
// done with it- you may not want that behavior.
using (var myStream = new NetworkStream(mySocket)) {
my3rdPartyObject.Foo(myStream);
}
esto es increíble :) no pude pensar de esta manera. Gracias. – Fer
En caso de que el usuario de esa transmisión quiera llamar a 'myStream.Close()', recomiendo construir NetworkStream con la propiedad del socket: 'new NetworkStream (mySocket, true)'. De lo contrario, terminará preguntándose por qué el hilo que bloquea en una operación de lectura todavía está bloqueado después de cerrar la secuencia. –
Trate de mirar System.Net.Sockets.SocketType.Stream?
¿O intenta mirar el System.Net.Sockets.NetworkStream?
http://msdn.microsoft.com/en-us/library/system.net.sockets.networkstream.aspx
Gracias John, la respuesta de @Chris Shain funciona. Eso es lo que necesito – Fer
- 1. C++ copie un objeto de secuencia
- 2. Conversión de un recurso de socket en un socket de secuencia
- 3. Enchufes en C#: ¿Cómo obtener la secuencia de respuesta?
- 4. Obtener la dirección IP de un socket remoto Endpoint
- 5. Socket C# UDP: Obtener la dirección del receptor
- 6. Cómo cancelar un socket en C#
- 7. C# - Para cerrar un NetworkStream, la secuencia de llamada.Cerrar o socket.Shutdown?
- 8. Programación de socket en C++
- 9. ¿Cómo obtener una secuencia de cámara IP en C#?
- 10. ¿Cómo serializas un objeto en C++?
- 11. C# métodos de rendimiento para recibir datos de un socket?
- 12. ¿Cómo obtener datos hacia/desde un socket en un hilo?
- 13. C/Python Socket Performance?
- 14. Encuadernación de un socket al puerto 80 en ansi c
- 15. obtener el objeto libro actual en C#
- 16. obtener la dirección de un objeto lua
- 17. C++ read() - ing desde un socket a un ofstream
- 18. herencia de la secuencia en C++
- 19. Obtener la clave de un elemento en un objeto Collection
- 20. TCPClient vs Socket en C#
- 21. Cómo obtener su propia dirección IP (local) desde un socket udp (C/C++)
- 22. utilizando una conexión de socket sin bloqueo en C
- 23. obtener la referencia del objeto DTE2 en Visual C# 2010
- 24. Obtener la longitud de la secuencia en EL
- 25. Inicialización del puntero de secuencia en C#
- 26. cómo activar boost :: asio socket en C++/CLI .Net socket?
- 27. Introducción a la programación de socket en C# - Mejores prácticas
- 28. obtener métodos de un objeto en Ruby
- 29. ¿Cómo obtener la URL de la secuencia de mensajes conociendo la id de la secuencia?
- 30. Obtener la propiedad del objeto en JavaScript
Tenga cuidado al mezclar zócalo y corriente - una instancia de socket es multi-hilo - una instancia de secuencia no es! – weismat