2012-12-15 9 views

Antwort

5

In diesem Fall Nein, es gibt keinen Unterschied. Intern NS.DataAvailable gibt True zurück, wenn Socket.Available != 0. Da TC.Available einfach zurückgibt und Sie überprüfen, ob das größer als 0 ist, tun Sie im Grunde dasselbe.

+1

In der Tat [TCPClient.cs Quellcode in C# .NET] (http://www.dotnetframework.org/default.aspx/[email protected]/[email protected]/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/fx/ src/Net/System/Net/Sockets/TCPClient @ cs/1305376/TCPClient @ cs) liest 'public int Verfügbar {get {return m_ClientSocket.Available;}}' und [NetworkStream.cs Quellcode in C# .NET] (http : //reflector.webtropy.com/default.aspx/[email protected]/[email protected]/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/fx/src/Net/System/Net/Sockets/[email protected]/1305376/NetworkStream @cs) liest 'return chkStreamSocket.Available! = 0;'. –

2

Aus der MSDN:

NetworkStream.DataAvailable

Ruft einen Wert, der Network auf der verfügbaren Daten zu lesen gibt an, ob.

TcpClient.Available

Ruft die Datenmenge , die aus dem Netz empfangen wurde und ist zur Verfügung zu lesen.

NetworkStream.DataAvailable kehrt boolean (true, wenn Daten verfügbar sind, auf dem Strom zu lesen ist), TcpClient.Available kehren Int32 (die Anzahl von Bytes der empfangenen Daten aus dem Netzwerk und zur Verfügung zu lesenden)