networking and socket

Post on 24-May-2015

114 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

 NetworkingIn the world of computers, networking is 

the practice of linking two or more computing devices together for the purpose of sharing data. Networks are built with a mix of computer hardware and computer 

software.

• A network consists of two or more computers that  are  linked  in  order  to  share  resources (such  as  printers  and CDs),  exchange files,  or allow electronic communications. 

• The  computers  on  a  network  may  be  linked through cables,  telephone  lines,  radio waves, satellites, or infrared light beams. 

• common types of networks :– Local Area Network(LAN)–Wide Area Network(WAN)–Metropolitan area Network(MAN)

Advantages

• User access control , Information storing and sharing, Connections ,Services, Internet, sharing resources, Flexible Access. 

Disadvantages

• Expensive to Install, Requires Administrative Time, Servers Fail, Cables May Break, Security 

• A computer network consists of machines interconnected by communication channels.

• We call these machines hosts or routers . • Hosts are computers that run applications such as your Web browser, the application programs running on hosts are really the users of the network. 

• Routers are machines whose job is to relay or forward information from one communication channel to another. 

• By information we here mean a sequences of bytes that are constructed and interpreted by programs. 

• In the context of computer networks these byte sequences are generally called packets .

• A protocol is an agreement about the packets exchanged .

•  TCP is designed to detect and recover from the losses, duplications, and other errors that may occur in the host-to-host channel provided by IP. 

• TCP provides a reliable byte-stream channel.

TCP/IP network

Socket• A socket is one end-point of a two-way

communication link between two programs running on the network.

• A  server  application  normally  listens  to  a  specific port waiting for connection requests from a client.

• When  a  connection  request  arrives,  the  client  and the  server  establish  a  dedicated connection over which they can communicate. 

• During  the  connection  process,  the client is assigned a local port number, and binds a socket to it.  The  client  talks  to  the  server  by  writing  to  the socket  and  gets  information  from  the  server  by reading from it. 

logical relationships among applications

Socket Addresses• IPv4  uses  32-bit  binary  addresses  to  identify communicating hosts.

• .NET  encapsulates  the  IP  addresses abstraction  in  the  IPAddress class  which  can take  a  long  integer  IP  argument  in  its constructor,  or  process  a  string  with  the dotted-quad  representation  of  an  IP  address using its Parse()method.

• The Dns  class  also  provides  a  mechanism  to look  up,  or  resolve    names to IP addresses (e.g., server.example.com ).

• a single server to resolve to multiple IP addresses or name aliases, the results are returned in a container class IPHostEntry, which contains an array of one or more string.

• The Dns class has several methods for resolving IP addresses. The GetHostName() method takes no arguments and returns a string containing the local host name.

• The GetHostByName() and Resolve()methods are basically identical, they take a string argument containing the host name to be looked up and returns the IP address and host name.

• Information for the supplied input in the form of an IPHostEntry class instance. The Get-HostByAddress() method takes a string argument containing the dotted-quad string representation of an IP address and also returns host information in an IPHostEntry instance.

using System.Net;using System.Net.Sockets;namespace socket1{   class IPAddressExample    {       static void PrintHostInfo(String host)        {            try {                IPHostEntry hostInfo;

                 // Attempt to resolve DNS for given host or address

                 hostInfo = Dns.Resolve(host);

                 // Display the primary host name

Console.WriteLine(" \tCanonical Name : " + hostInfo.HostName);                  // Display list of IP addresses for this host                   Console.Write(" \tIP Addresses: ");                  foreach (IPAddress ipaddr in hostInfo.AddressList)                   {                     Console.Write(ipaddr.ToString()+"");                  }                   Console.WriteLine(" \n");                 }catch (Exception)             {      Console.WriteLine(" \tUnable to resolve host:"+ host+ "\n");            }        }

static void Main(string[] args) {

 // Get and print local host info try {         Console.WriteLine("Local Host:");         String localHostName = Dns.GetHostName();         Console.WriteLine(" \tHost Name: " + localHostName);         PrintHostInfo(localHostName);    }  catch (Exception) {    Console.WriteLine("Unable to resolve local host\n"); } } }

TCP classes• The transmission control protocol (TCP) classes

offer simple methods for connecting and sending data between two endpoints. An endpoint is the combination of an IP address and a port number.

• Existing protocols have well defined port numbers, for example, HTTP uses port 80, while SMTP uses port 25.

• The Internet Assigned Number Authority, IANA, (http://www.iana.org/) assigns port numbers to these well-known services.

• Socket: Low-level class that deals with managing connections. Classes such as WebRequest, TcpClient, and UdpClient use this class internally.

• NetworkStream: Derived from Stream . Represents a stream of data from/to the network.

• TcpClient:  Enables you to create and use TCP connections.

• TcpListener: Enables you to listen for incoming TCP connection requests.

• The  TcpListener class listens for incoming TCP connections with the  Start()method. 

• When a connection request arrives you can use the AcceptSocket() method to return a socket for communication with the remote machine, or use the AcceptTcpClient()method to use a higher-level  TcpClient object for communication.

• UdpClient: Enables you to create connections for UDP clients. (UDP is an alternative protocol to TCP, but is much less widely used, mostly on local networks.)

top related