Ho un'applicazione client-server che comunica su TCP/IP.
Uso l'oggetto tipo System.Net.Sockets.Socket
per la comunicazione ascnonica su TCP. In linea di principio, apro la connessione per inviare/ricevere dati e chiudere la connessione. E la mia implementazione è basata su oggetti di tipo Socket.
Ora ho bisogno di usare una DLL di terze parti per fare qualcosa. Questa dll si aspetta un oggetto di tipo System.IO.Stream
. Così ho bisogno di ottenere flusso oggetto della mia Socket oggetto.
Come posso farlo?
Grazie.ottenere flusso di un oggetto socket in C#
risposta
Abbastanza semplice, in realtà. Il costruttore della classe NetworkStream accetta una presa di corrente per avvolgere:
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);
}
questo è fantastico :) non potrei pensare in questo modo. Grazie. – Fer
Nel caso in cui l'utente di quel flusso voglia chiamare 'myStream.Close()', consiglio di costruire NetworkStream con la proprietà del socket: 'new NetworkStream (mySocket, true)'. Altrimenti si finisce per chiedersi perché il thread che blocca in un'operazione di lettura sia ancora bloccato dopo aver chiuso il flusso. –
Prova a guardare System.Net.Sockets.SocketType.Stream?
Oppure prova a guardare System.Net.Sockets.NetworkStream?
http://msdn.microsoft.com/en-us/library/system.net.sockets.networkstream.aspx
Grazie John, la risposta di @Chris Shain funziona. Questo è quello di cui ho bisogno. – Fer
- 1. Serializzare un oggetto in C# e ottenere il flusso di byte
- 2. Come ottenere un flusso di telecamere IP in C#?
- 3. socket.io + Redis + expressjs grappolo - ottenere oggetto socket in expressjs richiedere
- 4. Convertire un oggetto in un array di byte in C#, inviarlo su un socket, quindi riconvertire in oggetto
- 5. C socket socket client/server
- 6. Decompressione di un flusso in C#
- 7. Come ottenere il tipo di un oggetto dinamico in C#?
- 8. oggetto socket python accetta timeout
- 9. Ottieni un numero di socket aperti in C#?
- 10. come convertire un flusso di input per un oggetto Java
- 11. Ottenere un flusso da un percorso assoluto?
- 12. C# domande socket asincroni
- 13. Come ottenere l'indirizzo IP di un endpoint socket remoto
- 14. È possibile scrivere contemporaneamente su un ingresso e un flusso di uscita socket?
- 15. Come ottenere un flusso da un float []
- 16. attributo Somma di oggetto con flusso API
- 17. TCPClient vs socket in C#
- 18. Timeout socket in C++ Linux
- 19. Prestazioni C/Python Socket?
- 20. In Java, come si ottiene un socket o DatagramSocket dal descrittore di file di un socket C già aperto?
- 21. Aggiunta di dati a un oggetto socket.io socket
- 22. Posso richiamare il sovraccarico dell'operatore di flusso senza un oggetto flusso?
- 23. Flusso C++ come variabile membro
- 24. Restituire un oggetto in C++
- 25. come trasformare boost :: socket asio in socket C++/CLI .Net?
- 26. Ottenere le dimensioni di un oggetto Qt
- 27. Come ottenere System.IO.Stream da un oggetto String
- 28. Socket, numero di byte disponibili (C#)
- 29. Eliminazione di un oggetto in C++
- 30. Come ottenere un flusso FILE * da un descrittore di file?
Fare attenzione durante la miscelazione Socket e Stream - un'istanza socket è threadsafe - un'istanza di flusso non è! – weismat