Home
Browse all 647 examples
Download all 647 examples
Download sample chapters
Reviews
Errata
Acknowledgments
Links on .NET
Paradoxal Press

Buy directly from Paradoxal Press at $33.99 (Save 43%)



Category: Programming
Level: Beginner to seasoned
900 pages
ISBN-10 097661322-0
ISBN-13 978-097661322-0
$59.99 USA
$79.99 CANADA


Listing 17-22 extracted from chapter Input/Output and streams


Listing 17-21<     > Listing 18-1


This listing can be compiled with the command line:
csc.exe /out:Client.exe /target:exe Example_17_22_to_rename_Client.cs
Errors: 0 Warnings: 0


Example_17_22_to_rename_Client.cs
using System;
using System.Net.Sockets;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Principal;

class ProgClient {
   static readonly string host = "localhost";
   static readonly ushort port = 50000;
   static void Main() {
      TcpClient tcpClient;
      try {
         tcpClient = new TcpClient( host, port );
         Console.WriteLine(
               "Connexion established with {0}:{1}", host, port);
         NetworkStream networkStream = tcpClient.GetStream();

         NegotiateStream streamAuth=new NegotiateStream( networkStream );
         streamAuth.AuthenticateAsClient( 
               CredentialCache.DefaultNetworkCredentials,
               WindowsIdentity.GetCurrent().Name,
               ProtectionLevel.EncryptAndSign,
               TokenImpersonationLevel.Impersonation);

         StreamReader streamReader = new StreamReader( streamAuth );
         try {
            // Each loop = a line fetched.
            string sTmp = streamReader.ReadLine();
            while (sTmp != null) {
               Console.WriteLine( "Receiving: {0}", sTmp );
               sTmp = streamReader.ReadLine();
            }
         } finally {
            // Close streams.
            streamReader.Close();
            streamAuth.Close();
            networkStream.Close();
            Console.WriteLine( "Deconnecting from {0}:{1}", host, port );
         }
      } catch (Exception e) {
         Console.WriteLine( e.Message );
         return;
      }
   }
}	
Copyright Patrick Smacchia 2006 2007