2008-10-14 12 views
10

Hier ist eine andere C# /. NET Frage basiert lediglich auf curiousity mehr als eine sofortige Notwendigkeit ...Ist es möglich, zwischen Socket- und TcpClient-Objekten zu konvertieren?

Wenn Sie eine Socket Instanz hatte und man wollte es in der höheren Ebene TcpClient Klasse wickeln, ist das möglich und wie würdest du es machen?

Umgekehrt, wenn Sie eine Instanz von TcpClient haben, ist es möglich, die zugrunde liegende Socket zu bekommen?

+2

Anscheinend gibt es die sehr offensichtliche "Client" -Eigenschaft, die ich komplett vermisst habe! –

+0

Ich auch, also ist es in Ordnung. :-) –

Antwort

25

Wenn Sie eine Socket-Instanz hatte und Sie wollte es in der höheren Ebene TcpClient Klasse wickeln, ist das möglich und , wie würden Sie es tun?

Socket socket = ...; 
TcpClient client = new TcpClient(); 
client.Client = socket; 

Umgekehrt, wenn Sie eine Instanz von TcpClient haben, ist es möglich, die zugrunde liegenden Sockel zu bekommen?

Holen Sie sich den zugrunde liegenden Socket mit TcpClient.Client Eigenschaft.

3

Von TcpClient zu Socket ist sehr einfach. tcpClientInstance.Client ist die zugrunde liegende Socket-Instanz.