implements a NetworkStream server

   

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/


 /*
  Example15_12a.cs implements a NetworkStream server
*/

using System;
using System.IO;
using System.Net.Sockets ;

public class Example15_12a 
{

  // Listen waits for connections
  private void Listen()
  {
    // listen on port 50001
    TcpListener tcpl = new TcpListener(50001);
    tcpl.Start();

    // wait for clients
    for (;;)
    {
      
      // Block here waiting for client connections
      Socket newSocket = tcpl.AcceptSocket();
      if (newSocket.Connected)
      {

        // create a NetworkStream on the socket
        NetworkStream ns = new NetworkStream(newSocket);

        // send some data
        byte[] buf = {(byte)'H', (byte)'e', (byte)'l', (byte)'l',
         (byte)'o', (byte)' ', (byte)'N', (byte)'e', (byte)'t'};
        ns.Write(buf, 0, 9);

        // cleanup
        ns.Flush();
        ns.Close();

      }

      // clean up and quit
      newSocket.Close();
      break;

    }

  }

  public static void Main() 
  {

    // launch a listening thread
    Example15_12a listener = new Example15_12a();
    listener.Listen();

  }

}


           
          


Write to a NetworkStream

   
 
using System;
using System.IO;
using System.Text;
using System.Net;
using System.Net.Sockets;


class Program {
    static void Main(string[] args) {
        TcpClient client = new TcpClient();
        IPHostEntry host = Dns.GetHostByName("www.google.com");
        client.Connect(host.AddressList[0], 8000);

        NetworkStream clientStream = client.GetStream();

        string request = "LIST";
        byte[] requestBuffer = Encoding.ASCII.GetBytes(request);
        clientStream.Write(requestBuffer, 0, requestBuffer.Length);

        byte[] responseBuffer = new byte[256];
        MemoryStream memStream = new MemoryStream();
        int bytesRead = 0;
        do {
            bytesRead = clientStream.Read(responseBuffer, 0, 256);
            memStream.Write(responseBuffer, 0, bytesRead);
        } while (bytesRead > 0);



    }
}

    


NetworkInterface: Speed

   
 
using System;
using System.Net.NetworkInformation;

class MainClass {
    static void Main() {
        if (NetworkInterface.GetIsNetworkAvailable()) {
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces) {
                Console.WriteLine("     Speed: {0}", ni.Speed);
            }
        } else {
            Console.WriteLine("No network available.");
        }
    }
}

    


NetworkInterface: NetworkInterfaceType

   
 
using System;
using System.Net.NetworkInformation;

class MainClass {
    static void Main() {
        if (NetworkInterface.GetIsNetworkAvailable()) {
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces) {
                Console.WriteLine("    Type: {0}", ni.NetworkInterfaceType);
            }
        } else {
            Console.WriteLine("No network available.");
        }
    }
}

    


NetworkInterface: Id

   
 
using System;
using System.Net.NetworkInformation;

class MainClass {
    static void Main() {
        if (NetworkInterface.GetIsNetworkAvailable()) {
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces) {
                Console.WriteLine("    ID: {0}", ni.Id);
            }
        } else {
            Console.WriteLine("No network available.");
        }
    }
}

    


NetworkInterface: Description

   
 
using System;
using System.Net.NetworkInformation;

class MainClass {
    static void Main() {
        if (NetworkInterface.GetIsNetworkAvailable()) {
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces) {
                Console.WriteLine("     Description: {0}", ni.Description);
            }
        } else {
            Console.WriteLine("No network available.");
        }
    }
}

    


NetworkInterface: Name

   
 
using System;
using System.Net.NetworkInformation;

class MainClass {
    static void Main() {
        if (NetworkInterface.GetIsNetworkAvailable()) {
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces) {
                Console.WriteLine("Interface Name: {0}", ni.Name);
            }
        } else {
            Console.WriteLine("No network available.");
        }
    }
}