networking and socket
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.)