<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4193683792173214666</id><updated>2012-01-21T16:13:42.279-08:00</updated><category term='end to end'/><category term='.Net Programming'/><category term='user to user'/><category term='Network Programming'/><category term='c# socket'/><category term='free chat'/><category term='Stored Procedure'/><category term='chat in C# .net'/><category term='server socket'/><category term='IO'/><category term='chat source code'/><category term='Syncronous'/><category term='socket programming'/><category term='chat room'/><category term='Beginner socket'/><category term='Network Stram'/><category term='File Transfer'/><category term='raw socket'/><category term='c#'/><category term='client to client'/><category term='socket'/><category term='Server to Client File Transfer'/><category term='text chat'/><category term='FTP C#'/><category term='Server to Client'/><category term='socket application'/><category term='run any stored procedure'/><category term='Client Socket'/><category term='remoting'/><category term='TCP Socket'/><category term='.net'/><category term='Asynchronous'/><category term='file IO'/><category term='Syncronous socket'/><category term='Ayncronous socket'/><category term='file cutter'/><title type='text'>Socket Programming in C# .Net</title><subtitle type='html'>Dot Net Programming in C# with source code and DLL file. Covers Socket, Remoting, Stored Procedure, ASP.Net, IO, Web Service, Windows Service, Installer, Console Programming, Win Forms, Web Forms, Ajax, Web publishing, Text Chat, Large File Transfer, File Handling etc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-9181409682968428975</id><published>2010-01-28T08:36:00.000-08:00</published><updated>2011-05-30T07:16:55.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='File Transfer'/><category scheme='http://www.blogger.com/atom/ns#' term='Server to Client'/><category scheme='http://www.blogger.com/atom/ns#' term='Server to Client File Transfer'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Send File from Server to Client using C# Socket Programming</title><content type='html'>Hi, I will discuss about the code later. For now just the codes.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One small hints, about how this is working - First client try to connect to server. Then in server side, server gets a object of client socket. In past all time by that socket object data was transferred from client to server. But now server sends data to client using same socket. This is just opposite of Client to server file transfer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Client code:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;using System;&lt;/div&gt;&lt;div&gt;using System.Collections.Generic;&lt;/div&gt;&lt;div&gt;using System.Text;&lt;/div&gt;&lt;div&gt;using System.Net;&lt;/div&gt;&lt;div&gt;using System.Net.Sockets;&lt;/div&gt;&lt;div&gt;using System.IO;&lt;/div&gt;&lt;div&gt;namespace Client_Socket&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;    //FILE TRANSFER USING C#.NET SOCKET - CLIENT&lt;/div&gt;&lt;div&gt;    class Program&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;        static void Main(string[] args)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            try&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                Console.WriteLine("That program can transfer small file. I've test up to 850kb file");&lt;/div&gt;&lt;div&gt;                IPAddress[] ipAddress = Dns.GetHostAddresses("localhost");&lt;/div&gt;&lt;div&gt;                IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], 5656);&lt;/div&gt;&lt;div&gt;                Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;/div&gt;&lt;div&gt;                clientSock.Connect(ipEnd);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                byte[] clientData = new byte[1024 * 5000];&lt;/div&gt;&lt;div&gt;                string receivedPath = "C:/";&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                int receivedBytesLen = clientSock.Receive(clientData);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                int fileNameLen = BitConverter.ToInt32(clientData, 0);&lt;/div&gt;&lt;div&gt;                string fileName = Encoding.ASCII.GetString(clientData, 4, fileNameLen);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                Console.WriteLine("Client:{0} connected &amp;amp; File {1} started received.", clientSock.RemoteEndPoint, fileName);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                BinaryWriter bWrite = new BinaryWriter(File.Open(receivedPath + fileName, FileMode.Append)); ;&lt;/div&gt;&lt;div&gt;                bWrite.Write(clientData, 4 + fileNameLen, receivedBytesLen - 4 - fileNameLen);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                Console.WriteLine("File: {0} received &amp;amp; saved at path: {1}", fileName, receivedPath);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                bWrite.Close();&lt;/div&gt;&lt;div&gt;                clientSock.Close();&lt;/div&gt;&lt;div&gt;                Console.ReadLine();&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;            catch (Exception ex)&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                Console.WriteLine("File Sending fail." + ex.Message);&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Server code:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span" style=" text-decoration: underline;font-size:large;" &gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span" style=" text-decoration: underline;font-size:large;" &gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;using System;&lt;/div&gt;&lt;div&gt;using System.Collections.Generic;&lt;/div&gt;&lt;div&gt;using System.Text;&lt;/div&gt;&lt;div&gt;using System.Net;&lt;/div&gt;&lt;div&gt;using System.Net.Sockets;&lt;/div&gt;&lt;div&gt;using System.IO;&lt;/div&gt;&lt;div&gt;namespace beginSocketServer&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;    //FILE TRANSFER USING C#.NET SOCKET - SERVER&lt;/div&gt;&lt;div&gt;    class Program&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;        static void Main(string[] args)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            try&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                Console.WriteLine("That program can transfer small file. I've test up to 850kb file");&lt;/div&gt;&lt;div&gt;                IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5656);&lt;/div&gt;&lt;div&gt;                Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;/div&gt;&lt;div&gt;                sock.Bind(ipEnd);&lt;/div&gt;&lt;div&gt;                sock.Listen(100);&lt;/div&gt;&lt;div&gt;                //clientSock is the socket object of client, so we can use it now to transfer data to client&lt;/div&gt;&lt;div&gt;                Socket clientSock = sock.Accept();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                string fileName = "test.txt";// "Your File Name";&lt;/div&gt;&lt;div&gt;                string filePath = @"C:\FT\";//Your File Path;&lt;/div&gt;&lt;div&gt;                byte[] fileNameByte = Encoding.ASCII.GetBytes(fileName);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                byte[] fileData = File.ReadAllBytes(filePath + fileName);&lt;/div&gt;&lt;div&gt;                byte[] clientData = new byte[4 + fileNameByte.Length + fileData.Length];&lt;/div&gt;&lt;div&gt;                byte[] fileNameLen = BitConverter.GetBytes(fileNameByte.Length);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                fileNameLen.CopyTo(clientData, 0);&lt;/div&gt;&lt;div&gt;                fileNameByte.CopyTo(clientData, 4);&lt;/div&gt;&lt;div&gt;                fileData.CopyTo(clientData, 4 + fileNameByte.Length);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                clientSock.Send(clientData);&lt;/div&gt;&lt;div&gt;                Console.WriteLine("File:{0} has been sent.", fileName);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                clientSock.Close();&lt;/div&gt;&lt;div&gt;                Console.ReadLine();&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;            catch (Exception ex)&lt;/div&gt;&lt;div&gt;            {&lt;/div&gt;&lt;div&gt;                Console.WriteLine("File Receiving fail." + ex.Message);&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-9181409682968428975?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/9181409682968428975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=9181409682968428975' title='80 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/9181409682968428975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/9181409682968428975'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2010/01/send-file-from-server-to-client-using-c.html' title='Send File from Server to Client using C# Socket Programming'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>80</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-3373754409518987276</id><published>2009-10-23T09:57:00.000-07:00</published><updated>2010-09-24T12:15:14.826-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user to user'/><category scheme='http://www.blogger.com/atom/ns#' term='File Transfer'/><category scheme='http://www.blogger.com/atom/ns#' term='end to end'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='remoting'/><category scheme='http://www.blogger.com/atom/ns#' term='client to client'/><title type='text'>Client to Client file transfer using C# .Net  Programming - Remoting technology</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="  font-weight: bold; font-family:Arial;font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;For basic information regarding .Net Remoting technology you may refer my previous article “&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;Global Text Chat Room Application Using C#.NET Remoting Technology”&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family:Arial;"&gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;User manual:&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://2.bp.blogspot.com/_hrre9HnkHlU/SwO1osUGBpI/AAAAAAAACTs/1Xpb3GPD6EQ/s320/Dll.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 153px; height: 63px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5405363688469563026" /&gt;  &lt;img src="http://3.bp.blogspot.com/_hrre9HnkHlU/SwO1o54OIuI/AAAAAAAACT0/aq5BoMkVd2s/s320/Chat+Server.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 117px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5405363692110750434" /&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;To run that application first you have to run server application. Then you will get one winforms with two buttons ‘Start’ and ‘Stop’ as screenshot. Your have to run server by pressing Start button.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://3.bp.blogspot.com/_hrre9HnkHlU/SwO1pEc1c_I/AAAAAAAACT8/Vi9c5DMBGyo/s320/Join+chat+room.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 109px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5405363694948676594" /&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Now run client application. Here you will get first a winform which will ask your name and server address, port etc. If you try with same machine then the given address is ok. But if it different address then need to update ‘localhost’ with particular IP address or host name. But do not change port number and remaining thing and press enter or join button. See screenshot.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;img src="http://2.bp.blogspot.com/_hrre9HnkHlU/SwO1plf-RiI/AAAAAAAACUE/BFgY66THkA4/s320/Chat+client.JPG" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 169px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5405363703820207650" /&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Then you will get another form. Here you will see online users in a TreeView. From here you need to select a user by double clicking on his/her name, and then need to select a file by pressing ‘Select a File’ button. A file dialog box window will come from where you need to select a file.  Then press Send button. On receiver end one popup will come which will ask receiver will he receive it reject. If select receive then will ask a path where it will save. Then the file will transfer from sender to receiver.  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;Application logic:&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;For file transfer I have used basic codes of my previous project. Here also has three part –&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (1) Base Remote Class (DLL) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(2) Server Class and&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(3) Client Class &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Server and Client class is using Base Remote Class. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In Base Remote Class have three sections (region) –&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol style="margin-top:0in" start="1" type="a"&gt;  &lt;li class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Join to server and user related      information&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;File related information – file name,      size, sender name, receiver name etc. and&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;File transferring between two users.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;For online user list I have used ArrayList object and for transferring data have used queue by HashTable. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In Server Class nothing very special. Here have just two methods, for starting server and stopping server. Start server is opening a TCPChannel and registering it, on the other side Stop Server is closing TCPChannel and unregistering it.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;For login to server it exactly same as my previous article “&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Global Text Chat Room Application Using C#.NET Remoting Technology”.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In Client Class, there have few interesting parts. The major is a timer event. By this event client is checking to server if any data/information is available to it or not. Also by that timer collects latest user related information from server. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;When client wants to send a file to some one then first it reads file related information and sends it to server with receiver id through SetFileInfo method of RemoteObject. Then it reads the file by a BinaryReader part by part and sends each part to server. In Server side it stores in a Hashtable from which receiver will receives it and server will remove each part one by as and when receiver confirms to remove after receivers’ acceptance.  Here major roles plays SendFile method and Timer tick of Client and SendDataToServer, GetDataFromServer method of remote object class. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Basic architecture of my application is that, remaining of all you can understand if you go though the codes.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style=" ;font-size:medium;"&gt;Remoting / Common base code is here:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size:17px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;using System;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;using System.Runtime.Remoting;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;using System.Runtime.Remoting.Channels;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;using System.Runtime.Remoting.Channels.Tcp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;using System.Collections;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;namespace RemoteBase&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;    /// &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;remarks&gt;&lt;/remarks&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;    /// Sample object to demonstrate the use of .NET Remoting.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;    /// &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;    public class SampleObject : MarshalByRefObject&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;    {   &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        ArrayList alOnlineUser = new ArrayList();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        Hashtable htUserData = new Hashtable();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        Hashtable htFileData = new Hashtable();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        private int key = 0;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        private string receiverID,senderID,fileName,fileTransferStatus;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        private int fileSize;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        private bool isFileTransferring = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        #region USER JOINING AND ONLINE USER RELATED&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        public bool JoinToChatRoom(string name)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            if (alOnlineUser.IndexOf(name) &gt; -1)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                return false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                alOnlineUser.Add(name);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                return true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        public void LeaveChatRoom(string name)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            alOnlineUser.Remove(name);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        public ArrayList GetOnlineUser()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            return alOnlineUser;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        public int CurrentKeyNo()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            return key;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        #endregion&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;        &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        #region FILE INFORMATION ACCESS BETWEEN SENDER AND RECEIVER&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        public bool SetFileInfo(string senderId, string receiverId, string fileName, int fileSize)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            if (!this.isFileTransferring)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                lock (this)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                    this.isFileTransferring = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                this.senderID = senderId;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                this.receiverID = receiverId;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                this.fileName = fileName;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                this.fileSize = fileSize;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                return true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            else//Now some file transferring, so need to wait&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                return false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        public string GetFileName_Size_SenderId(string receiverId)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            if (this.receiverID == receiverId)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                return this.fileName + ":" + this.fileSize.ToString() + ":" + this.senderID;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;            else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;                return null;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        #endregion&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        #region FILE TRANSFER BETWEEN SENDER AND RECEIVER&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        /// &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        /// This method is used to receive data from sender and hold in a array to deliver receiver.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        /// &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt;        /// &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;param name="data"&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// &lt;/span&gt;&lt;/p&gt;&lt;param name="dataSliceNo"&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// &lt;/span&gt;&lt;/p&gt;&lt;param name="senderId"&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// &lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        public bool SendDataToServer(byte[] data, int dataSliceNo, string senderId)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            lock (this)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                htFileData.Add(receiverID + dataSliceNo.ToString(), data);//Key= receiverId + sliceNo, binary data&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            return true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        // This method is used to receive data from server to receiver.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        public byte[] GetDataFromServer(string receiverId, int nextSliceNo)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (htFileData.Contains(receiverID + nextSliceNo.ToString()))&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                lock (this)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    byte[] tempByteData = (byte[])htFileData[receiverID + nextSliceNo.ToString()];&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    htFileData.Remove(receiverID + nextSliceNo.ToString());//Key= receiverId + sliceNo&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    return tempByteData;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                return null;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// &lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// This method is used to declare that file has succesfully received by the receiver. It invokes after the whole file &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// received by the receiver.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        /// &lt;/span&gt;&lt;/p&gt;&lt;param name="clientID"&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        public void ReceiveFileConfirm(string clientID)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (clientID == receiverID)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                this.fileTransferStatus = "File transfered successfully by " + this.receiverID;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                this.receiverID = "";&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                lock (this)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    this.isFileTransferring = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    htFileData.Clear();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        public void RejectFile(string clientID)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (this.receiverID == clientID)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                this.fileTransferStatus = "File has rejected by " + this.receiverID;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                this.receiverID = "";&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                lock (this)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    this.isFileTransferring = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    htFileData.Clear();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        #endregion        &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style=" ;font-size:17px;"&gt;&lt;b&gt;Server code is here:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size:17px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.ComponentModel;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Data;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Drawing;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Text;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Windows.Forms;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting.Channels;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting.Channels.Tcp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using RemoteBase;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;namespace RemoteServer&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    public partial class Form1 : Form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        public Form1()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            InitializeComponent();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        TcpChannel channel;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void btnStart_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (channel == null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                channel = new TcpChannel(8080);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                ChannelServices.RegisterChannel(channel, false);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                RemotingConfiguration.RegisterWellKnownServiceType(typeof(SampleObject), "HelloWorld", WellKnownObjectMode.Singleton);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                lblStatus.Text = "Running...";&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                btnStart.Enabled = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                btnStop.Enabled = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void btnStop_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (channel != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                ChannelServices.UnregisterChannel(channel);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                channel = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                lblStatus.Text = "Stopped.";&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                btnStart.Enabled = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                btnStop.Enabled = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style=" ;font-size:17px;"&gt;&lt;b&gt;Client code is here:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size:17px;"&gt;&lt;b&gt;Login and server connecting code:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size:17px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.ComponentModel;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Data;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Drawing;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Text;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Windows.Forms;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting.Channels;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting.Channels.Tcp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Collections;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using RemoteBase;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;namespace RemotingClient&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    public partial class frmLogin : Form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        TcpChannel chan;        &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        ArrayList alOnlineUser = new ArrayList();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        frmChatWin objChatWin;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        public frmLogin()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            InitializeComponent();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void btnJoin_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            JoinToChatRoom();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void JoinToChatRoom()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (chan == null &amp;amp;&amp;amp; txtName.Text.Trim().Length != 0)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                chan = new TcpChannel();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                ChannelServices.RegisterChannel(chan,false);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                // Create an instance of the remote object&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                objChatWin = new frmChatWin();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                objChatWin.remoteObj = (SampleObject)Activator.GetObject(typeof(RemoteBase.SampleObject), txtServerAdd.Text);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                if (!objChatWin.remoteObj.JoinToChatRoom(txtName.Text))&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    MessageBox.Show(txtName.Text+ " already joined, please try with different name");&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    ChannelServices.UnregisterChannel(chan);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    chan = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    objChatWin.Dispose();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    return;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                objChatWin.key = objChatWin.remoteObj.CurrentKeyNo();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                objChatWin.myName= txtName.Text;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                this.Hide();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                objChatWin.Show();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style=" ;font-size:17px;"&gt;&lt;b&gt;File transferring code: &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;span class="Apple-style-span" style="font-size:17px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:180%;"&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.ComponentModel;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Data;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Drawing;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Text;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Windows.Forms;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting.Channels;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Runtime.Remoting.Channels.Tcp;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Collections;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using RemoteBase;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.IO;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;using System.Threading;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;namespace RemotingClient&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    public partial class frmChatWin : Form&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        internal SampleObject remoteObj;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        internal int key = 0,fileSize;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        int sliceSize = 5 * 1024;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        internal string myName,fileName;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        ArrayList alOnlineUser = new ArrayList();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        string selectedUserName;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        OpenFileDialog ofd;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        public frmChatWin()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            InitializeComponent();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void btnSend_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            SendFile();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void timer1_Tick(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            timer1.Stop();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (remoteObj != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                string receiveFileName, senderId;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                int fileSize;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                string FileName_Size = remoteObj.GetFileName_Size_SenderId(myName);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                if (FileName_Size != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    string[] recvFileDesc = FileName_Size.Split(':');&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    receiveFileName = recvFileDesc[0];&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    fileSize = int.Parse(recvFileDesc[1]);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    senderId = recvFileDesc[2];&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    DialogResult usrRes = MessageBox.Show(senderId + " want to send a file. Will you accept it?", "", MessageBoxButtons.YesNo);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    if (usrRes == DialogResult.Yes)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        FolderBrowserDialog fbdSelect = new FolderBrowserDialog();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        fbdSelect.Description = "Select a path to save received file.";&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        if (fbdSelect.ShowDialog() == DialogResult.OK)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            BinaryWriter bWrite = new BinaryWriter(new FileStream(fbdSelect.SelectedPath+"\\" + receiveFileName, FileMode.Append));&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            for (int i = 0; i * sliceSize &lt;= fileSize; )&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                byte[] buffer = remoteObj.GetDataFromServer(myName, i + 1);//i+1 because when data send to server the it starts from 1&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                if (buffer != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    bWrite.Write(buffer);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    i++;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            bWrite.Close();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            remoteObj.ReceiveFileConfirm(myName);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            MessageBox.Show("File received successfully.");&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        remoteObj.RejectFile(myName);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                ArrayList onlineUser = remoteObj.GetOnlineUser();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                foreach (string name in onlineUser)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    if (name != myName &amp;amp;&amp;amp; !tvOnlineUser.Nodes.ContainsKey(name))&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        tvOnlineUser.Nodes.Add(name, name);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            //**** Button Enable - Disable&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (tvOnlineUser.Nodes.Count &gt; 0 &amp;amp;&amp;amp; lblSelUser.Text.Length &gt; 15)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                btnSelect.Enabled = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                btnSelect.Enabled = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            btnSend.Enabled = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (ofd != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                if (ofd.FileName.Length &gt; 0)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    btnSend.Enabled = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            timer1.Start();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }    &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void SendFile()&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (remoteObj != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                BinaryReader bRead = new BinaryReader(new FileStream(ofd.FileName, FileMode.Open));&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                fileSize = (int)bRead.BaseStream.Length;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                if (fileSize &gt; 1024 * 1024 * 50)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    MessageBox.Show("You can send maximum 50 MB file.", "Limit cross!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                else&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    byte[] smallPiece;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    if (fileSize &lt;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        smallPiece = new byte[fileSize];&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        bRead.Read(smallPiece, 0, fileSize);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    else//File is more than 5KB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        smallPiece = new byte[sliceSize];&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        if (remoteObj.SetFileInfo(myName, selectedUserName, fileName, fileSize))&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            for (int i = 1; i * sliceSize &lt;= fileSize + sliceSize; )&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                if (i * sliceSize &lt;= fileSize) // Last slice yet not reached&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    bRead.Read(smallPiece, 0, sliceSize);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    if (remoteObj.SendDataToServer(smallPiece, i, myName))&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                        i++;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                else//Last slice of data is going to fetch and for last slice data remains less than 5KB&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    int remainDataSize = fileSize - ((i - 1) * sliceSize);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    smallPiece = new byte[remainDataSize];&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    bRead.Read(smallPiece, 0, remainDataSize);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                    if (remoteObj.SendDataToServer(smallPiece, i, myName))&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                        i++;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                        }//End of SetFileInfo                       &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                bRead.Close();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void Form1_FormClosed(object sender, FormClosedEventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (remoteObj != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                remoteObj.LeaveChatRoom(myName);             &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            Application.Exit();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            System.Diagnostics.Process.Start("iexplore.exe", "http://socketprogramming.blogspot.com");&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void btnSelect_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            ofd = new OpenFileDialog();&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            if (ofd.ShowDialog() == DialogResult.OK)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                lblSelectedFile.Text = "Selected File: "+ofd.SafeFileName;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;                fileName = ofd.SafeFileName;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        private void tvOnlineUser_DoubleClick(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        {&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            selectedUserName = tvOnlineUser.SelectedNode.Name;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;            lblSelUser.Text = "Selected User: "+selectedUserName;            &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;    }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size:small;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-3373754409518987276?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/3373754409518987276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=3373754409518987276' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3373754409518987276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3373754409518987276'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2009/10/user-to-user-file-transfer-using-c-net.html' title='Client to Client file transfer using C# .Net  Programming - Remoting technology'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hrre9HnkHlU/SwO1osUGBpI/AAAAAAAACTs/1Xpb3GPD6EQ/s72-c/Dll.JPG' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-5373827453329875398</id><published>2009-08-18T03:28:00.000-07:00</published><updated>2011-05-18T09:31:51.207-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='text chat'/><category scheme='http://www.blogger.com/atom/ns#' term='free chat'/><category scheme='http://www.blogger.com/atom/ns#' term='chat source code'/><category scheme='http://www.blogger.com/atom/ns#' term='chat in C# .net'/><category scheme='http://www.blogger.com/atom/ns#' term='chat room'/><title type='text'>Global Text Chat Room Application using C#.Net  Programming - Remoting technology</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt; The basic and simple architecture of .Net Remoting technology has three parts, these are –&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;       1. Base Remoting class: This is like a bridge to communicate between Client and Server. It exists in a DLL file which shares Server and Client program.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;       2. Server class: It is server to server Client requests, every client connect to Server to communicate each other. This program holds a Remoting class’s DLL.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;       3. Client class: This is client part of Remoting architecture. This also holds a copy of Remoting base DLL. It connects to Server and via server communicates to other client.This is very simple idea of Remoting architecture, if you want to learn about this technology then you may read from MSDN site. I am not going to explain about its theory, I am focusing mainly about its application. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Now I will describe about a Global Text Chat Room application using this technology. This is very easy to develop and interesting also. In this program I have not covered about thread related issues, this is very basic type of chat application.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;img src="http://3.bp.blogspot.com/_hrre9HnkHlU/SoqDsuogTKI/AAAAAAAACRE/o_aFiHML8IY/s320/Dll.JPG" style="margin: 0px 10px 10px 0px; text-align: justify; float: left; cursor: pointer; width: 153px; height: 63px;" alt="" id="BLOGGER_PHOTO_ID_5371250310048140450" border="0" /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;As Remoting architecture here has a base class and after compiling produces a DLL file with name ‘RemoteBase.dll’. This DLL has about six methods like, JoinToChatRoom, LeaveChatRoom, SendMsgToSvr (Send Message To Server), GetMsgFromSvr (Get Message From Server) etc. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;img src="http://4.bp.blogspot.com/_hrre9HnkHlU/SoqDtEG37oI/AAAAAAAACRM/JMXcA6VHFwQ/s320/Chat+Server.JPG" style="margin: 0px 10px 10px 0px; text-align: justify; float: left; cursor: pointer; width: 320px; height: 117px;" alt="" id="BLOGGER_PHOTO_ID_5371250315812662914" border="0" /&gt;&lt;/span&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Next one is Server, this is a Windows Form (WinForm) application. This application uses ‘RemoteBase.dll’ as its reference file for library. Server registers a TCP channel with a port number. You may choose any port number from 1025 to 65k. And it registers for well known type of RemoteBase and mode type is Singleton. (Remember it should not work for Singlecall type, details and different will found on MSDN).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;When you run server you will see a window as attached screen shot and need to press button ‘Start’ to start server and check server status as ‘Running’. To stop the server need to press on ‘Stop’ button.&lt;/span&gt;&lt;/div&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;img src="http://3.bp.blogspot.com/_hrre9HnkHlU/SoqDtrwUnMI/AAAAAAAACRU/w9fiQuFqbhw/s320/Join+chat+room.JPG" style="margin: 0px 10px 10px 0px; text-align: justify; float: left; cursor: pointer; width: 320px; height: 109px;" alt="" id="BLOGGER_PHOTO_ID_5371250326455491778" border="0" /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Last one is Client part, it also a Windows form (WinForm) application with two windows forms. As server client also take reference of ‘RemoteBase.dll’ for library. When you run this client application one popup window will come and ask for your name which will be used to chat room to represent you. Then press on Join button. After that chat room window will open.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;There also has server address like ‘tcp://localhost:8080/HelloWorld’ here ‘localhost’ is server address and 8080 is port number. Server address needs to tell where your server is running. I am using server and client in same machine so server address is ‘localhost’ you may give any IP address here. Port number also can be changed but server opening port number and client requesting port number should be same. You can not change reaming thing in address otherwise this chat application will not work. &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;img src="http://4.bp.blogspot.com/_hrre9HnkHlU/SoqDtx1ApqI/AAAAAAAACRc/sI2EBpYGIWw/s320/chat+client.JPG" style="margin: 0px 10px 10px 0px; text-align: justify; float: left; cursor: pointer; width: 320px; height: 178px;" alt="" id="BLOGGER_PHOTO_ID_5371250328085767842" border="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Chat room window has four sections largest one to see all chat message and below of that to type chat message, and send button to send message to server. Just above list to display all online user.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;When you put your name then client application creates a remote base class’s object and connects to server by registering TCP channel.  Then connects to Chat Room and seek latest message number. After that main Chat Room window opens. From that window it seeks latest available message in server by a timer. To get message from server it invokes ‘GetMsgFromSvr()’, and get available online user through ‘GetOnlineUser (), and user message sends from client application to server by invoking ‘SendMsgToSvr()’. For better understanding you may go through the code.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Source code as below and full source code can download from following link:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;a style="color: rgb(0, 0, 153);" href="https://rapidshare.com/files/276755910/GChat_RemoteBase.zip"&gt;https://rapidshare.com/files/276755910/GChat_RemoteBase.zip&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:Arial;font-size:100%;"  &gt;&lt;b&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;How the code is working&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Start the Server:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;When users are trying start Server by clicking Start button the following code executes –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; btnStart_Click(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; sender, &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; e)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (channel == &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                channel = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; TcpChannel(&lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;8080&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ChannelServices&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.RegisterChannel(channel, &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;RemotingConfiguration&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.RegisterWellKnownServiceType(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;typeof&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(SampleObject), &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"ChatRoom"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;WellKnownObjectMode&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.Singleton);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                lblStatus.Text = &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"Running..."&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                btnStart.Enabled = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                btnStop.Enabled = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Here a TcpChannel opens with port number 8080 and register it as WellKnownServiceType. ‘ChatRoom’ it is the ‘ObjectUri’ it will require to connect to server from client.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;On the other hand when user press to ‘Stop’ server then unregister the channel and stop the server. Codes are below-&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; btnStop_Click(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; sender, &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; e)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (channel != &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ChannelServices&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.UnregisterChannel(channel);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                channel = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                lblStatus.Text = &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"Stopped."&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                btnStart.Enabled = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                btnStop.Enabled = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Join to ChatRoom:&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Next coming the client, how client connect to server and user login to the chat room. To joining to chat room the below codes are executes &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; JoinToChatRoom()&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (chan == &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &amp;amp;&amp;amp; txtName.Text.Trim().Length != &lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                chan = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; TcpChannel();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ChannelServices&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.RegisterChannel(chan,&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;// Create an instance of the remote object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                objChatWin = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; frmChatWin();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                objChatWin.remoteObj = (SampleObject)&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Activator&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.GetObject(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;typeof&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(RemoteBase.SampleObject), txtServerAdd.Text);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (!objChatWin.remoteObj.JoinToChatRoom(txtName.Text))&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    MessageBox.Show(txtName.Text+ &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;" already joined, please try with different name"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ChannelServices&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.UnregisterChannel(chan);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    chan = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    objChatWin.Dispose();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                objChatWin.key = objChatWin.remoteObj.CurrentKeyNo();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                objChatWin.yourName= txtName.Text;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;.Hide();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                objChatWin.Show();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Here from user client application takes a name and check to server is the name available or not. If name is available then user gets the ‘CurrentKeyNo’ of server, it is the number of last chat message (how the key generated, describe in later) and open the ChatRoom window.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; If user name is already taken by other user, then application asks to user for different name.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In server side to join a user in chat server “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;JoinToChatRoom()&lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;” method invokes, lets see what happens within the method –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; JoinToChatRoom(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; name)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (alOnlineUser.IndexOf(name) &amp;gt; -&lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                alOnlineUser.Add(name);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                SendMsgToSvr(name + &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;" has joined into chat room."&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Here is user can successfully logged in to server then his name is added in a user collection, ‘&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;alOnlineUser&lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;’ is it an ArrayList type object.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Send message to server:&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;When user type some message and press on ‘Send’ button or just press ‘Enter’ button then client application try to send message to server. To do it client call the below method –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; SendMessage()&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (remoteObj != &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &amp;amp;&amp;amp; txtChatHere.Text.Trim().Length&amp;gt;&lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                remoteObj.SendMsgToSvr(yourName + &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;" says: "&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; + txtChatHere.Text);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                txtChatHere.Text = &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Here client application in invokes the “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;SendMsgToSvr()&lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;” method of server. Let’s see the method what doing-&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; SendMsgToSvr(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; chatMsgFromUsr)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {            &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            hTChatMsg.Add(++key, chatMsgFromUsr);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Wow! This is very small code. Actually this is adding the users’ message to another collection. I have used for this collection of HashTable type, you may use any other collection type to store string data.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;See here has one counter ‘key’ which is incrementing by one. This is the counter which is maintaining the chat message number. It will help us to get chat message from server. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Receive Message from Server:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Ok friend, next look at how data are getting from server –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In chat room a timer always fires, which try to get message from server and current available user in server. Here below codes plays in Client side –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; timer1_Tick(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; sender, &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; e)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (remoteObj != &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; tempStr = remoteObj.GetMsgFromSvr(key);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (tempStr.Trim().Length &amp;gt; &lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    key++;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    txtAllChat.Text = txtAllChat.Text + &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"\n"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; + tempStr;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                 &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ArrayList&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; onlineUser = remoteObj.GetOnlineUser();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    lstOnlineUser.DataSource = onlineUser;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    skipCounter = &lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (onlineUser.Count &amp;lt; &lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                        txtChatHere.Text = &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"Please wait untill atleast two user join in Chat Room."&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                        txtChatHere.Enabled = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(txtChatHere.Text == &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"Please wait untill atleast two user join in Chat Room."&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &amp;amp;&amp;amp; txtChatHere.Enabled == &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                        txtChatHere.Text = &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                        txtChatHere.Enabled = &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                    }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }        &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Here client invokes “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;GetMsgFromSvr()&lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;” method to get message, with parameter key. The codes of the method are –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; GetMsgFromSvr(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; lastKey)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (key &amp;gt; lastKey)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; hTChatMsg[lastKey + &lt;/span&gt;&lt;span style="color:brown;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;].ToString();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;The server just takes the key as last-key of user’s message and uses it in Chat message collection to fetch the next chat message, after that the message return to the client.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;To online user client application invokes “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;GetOnlineUser()&lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;” method, lets see what happen in  server side within the method.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ArrayList&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; GetOnlineUser()&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; alOnlineUser;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;So this method returns the user collection object which was created in “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;JoinToChatRoom()&lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;” method.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;Leave the Chat Room:&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;When user closes the chat room, then client application request to server to remove his/her name from server’s online user list. In client side the below method invokes –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; Form1_FormClosed(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; sender, FormClosedEventArgs e)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; (remoteObj != &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                remoteObj.LeaveChatRoom(yourName);             &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;                txtChatHere.Text = &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            Application.Exit();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In server side the “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;LeaveChatRoom()&lt;/span&gt;&lt;/span&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;”method invokes, the code of that method is –&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;color:blue;"  &gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; LeaveChatRoom(&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; name)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            alOnlineUser.Remove(name);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;            SendMsgToSvr(name + &lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;" has left the chat room."&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;        }&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span  lang="EN-GB" style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Now server has deleted your name from online user list.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-5373827453329875398?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/5373827453329875398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=5373827453329875398' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/5373827453329875398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/5373827453329875398'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2009/08/global-text-chat-room-application-using.html' title='Global Text Chat Room Application using C#.Net  Programming - Remoting technology'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hrre9HnkHlU/SoqDsuogTKI/AAAAAAAACRE/o_aFiHML8IY/s72-c/Dll.JPG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-4079938789730009258</id><published>2009-02-26T05:02:00.000-08:00</published><updated>2011-05-18T09:53:50.960-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='File Transfer'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='TCP Socket'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='socket'/><category scheme='http://www.blogger.com/atom/ns#' term='FTP C#'/><title type='text'>Large File (2 GB) Transfer using C# Socket</title><content type='html'>&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C02%5Cclip_filelist.xml"&gt;&lt;link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C02%5Cclip_editdata.mso"&gt;&lt;!--[if !mso]&gt; &lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt; &lt;![endif]--&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"&gt;&lt;/o:smarttagtype&gt;&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"&gt;&lt;/o:smarttagtype&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if !mso]&gt;&lt;object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id="ieooui"&gt;&lt;/object&gt; &lt;style&gt; st1\:*{behavior:url(#ieooui) } &lt;/style&gt; &lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman"; 	mso-ansi-language:EN-GB;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 27.0pt 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1983458267; 	mso-list-type:hybrid; 	mso-list-template-ids:1426239592 -970813216 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-text:"%1\)"; 	mso-level-tab-stop:30.0pt; 	mso-level-number-position:left; 	margin-left:30.0pt; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Now I will discuss about, how we can transfer a large file (file size in GB) using Microsoft dot net socket programming using C# (C sharp) language. This code has written in Visual Studio 2005 (dot net 2).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-size:16;color:blue;"  &gt;&lt;span style="font-size:130%;"&gt;Basic Knowledge&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;To cover this article you need to read my few articles, these are –&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 12pt;"&gt;&lt;span style=""&gt;1.&lt;span style=""&gt;   &lt;/span&gt;Asynchronous Socket Server Programming for Beginner&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 12pt;"&gt;&lt;span style=""&gt;2.&lt;span style=""&gt;   &lt;/span&gt;Asynchronous Socket Client Programming for Beginner&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 12pt;"&gt;&lt;span style=""&gt;3.&lt;span style=""&gt;   &lt;/span&gt;File Transfer using C# Socket &lt;o:p&gt;Programming &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 12pt;"&gt;&lt;span style=""&gt;4.&lt;span style=""&gt;   &lt;/span&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Split&lt;/st1:city&gt;&lt;/st1:place&gt; and Assemble large file (around 2GB) in C# dot net Programming &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 12pt;"&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-size:16;color:blue;"  &gt;&lt;span style="font-size:130%;"&gt;Steps &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 12pt;"&gt;&lt;span style=""&gt;The basic code has covered in these article and that article basically comes by assembled these four. To transfer a large file from Client to Server I’ve followed these basic steps-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 12pt;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 30pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;1)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;First read the file (slice wise) and store a slice data in a buffer (byte array). How a file can read slice wise, it has covered in my 4&lt;sup&gt;th&lt;/sup&gt; article (&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Split&lt;/st1:place&gt;&lt;/st1:city&gt; and Assemble large file (around 2GB) in C#) in file split section. It’s required because TCP buffer is limited so if we try to send a large data then we will get TCP buffer overflow error.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 30pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;2)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Send these buffered data to server using TCP socket object. How it can be done, has covered in 3&lt;sup&gt;rd&lt;/sup&gt; article (File Transfer using C# Socket programming). And for basic idea you can read article 1 &amp;amp; 2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 30pt; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;3)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;In server side when we starts to receive sliced data from client then we write these data in a file. How this can be done has covered in article 4 (&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Split&lt;/st1:city&gt;&lt;/st1:place&gt; and Assemble large file (around 2GB) in C#.net ), in file assemble section.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 30pt; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 12pt;"&gt;&lt;span style=""&gt;To receive file from Server to Client same process is applicable, just then server sends data by sliced and receive by Client in same way.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-indent: 12pt;"&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style=";font-size:16;color:blue;"  &gt;&lt;span style="font-size:130%;"&gt;How to use DLL&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;In my code I have made these two functionality (server and client) in two separate class library (DLL file). By calling these two libraries (DLL file) any one can transfer data very easily.&lt;span style=""&gt;  &lt;/span&gt;To do it need to follow these steps -&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="color:blue;"&gt;Step 1: Create Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=""&gt;To use these dll to transfer data you need to create one client and one server object. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;For client object - &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;&lt;span style="font-size:85%;"&gt;SynchronusClient_ByteArr objClient = new SynchronusClient_ByteArr ("","localhost", @"C:\Documents and Settings\Administrator\UserData");&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:blue;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;First argument for client id, if you keep it blank string then also ok, but when you use dll for multiple client (sender) to transfer multiple file to multiple client (receiver) then it’s mandatory. Otherwise file may goes to all user or different user. Next argument for server IP, and next for a temporary back up path, it’s require at file receive time from server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;Here and one more constructor with more argument there you can assign port no etc. Here default port is 8000 and 8001.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;For Server object –&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:blue;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;&lt;span style="font-size:85%;"&gt;SyncSocketServerMulClient servObj = new SyncSocketServerMulClient();&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;If you use this code then server will load it’s default configuration, like port 8000 and 8001 and it’s default path to C: Other wise you can call overloaded method.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="color:blue;"&gt;Step 2: Method &amp;amp; Properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="color:blue;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;For server and client has some method which you need to call. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Client methods and properties are –&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_hrre9HnkHlU/SafOnC7q6qI/AAAAAAAACPQ/GsB8DmMZfmQ/s1600-h/pic1.JPG"&gt;                           &lt;img style="cursor: pointer; width: 167px; height: 141px;" src="http://4.bp.blogspot.com/_hrre9HnkHlU/SafOnC7q6qI/AAAAAAAACPQ/GsB8DmMZfmQ/s320/pic1.JPG" alt="" id="BLOGGER_PHOTO_ID_5307437856076786338" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hrre9HnkHlU/SafOnVQYMmI/AAAAAAAACPY/8C7j6uunnbM/s1600-h/pic2.JPG"&gt;                                &lt;img style="cursor: pointer; width: 189px; height: 171px;" src="http://3.bp.blogspot.com/_hrre9HnkHlU/SafOnVQYMmI/AAAAAAAACPY/8C7j6uunnbM/s320/pic2.JPG" alt="" id="BLOGGER_PHOTO_ID_5307437860995478114" border="0" /&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;                                    &lt;/span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:141.75pt;height:128.25pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\02\clip_image003.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    Picture 1&lt;span style=""&gt;                                                                                                                                &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;Picture 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Picture 1 for Method and events of client object and Picture 2 for method and property of client class.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Hope from pic 1 you can understand everything very easily and from pic 2 also clear from it’s name. For ‘status’, it holds current status of client like, slicing data, sending data, receiving data etc and ‘progress’ it holds current % of data transfer currently done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Server methods and properties are –&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_hrre9HnkHlU/SafOnXX22AI/AAAAAAAACPg/L_rthzW2yoE/s1600-h/pic3.JPG"&gt;                                &lt;img style="cursor: pointer; width: 116px; height: 136px;" src="http://1.bp.blogspot.com/_hrre9HnkHlU/SafOnXX22AI/AAAAAAAACPg/L_rthzW2yoE/s320/pic3.JPG" alt="" id="BLOGGER_PHOTO_ID_5307437861563717634" border="0" /&gt;&lt;/a&gt;&lt;span style=""&gt;&lt;span style=""&gt;                                                                   &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1028" type="#_x0000_t75" style="'width:106.5pt;height:115.5pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\02\clip_image007.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_hrre9HnkHlU/SafOnhO8sEI/AAAAAAAACPo/mbh9GZuZDoI/s1600-h/pic4.JPG"&gt;&lt;img style="cursor: pointer; width: 142px; height: 154px;" src="http://4.bp.blogspot.com/_hrre9HnkHlU/SafOnhO8sEI/AAAAAAAACPo/mbh9GZuZDoI/s320/pic4.JPG" alt="" id="BLOGGER_PHOTO_ID_5307437864210706498" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    Picture 3&lt;span style=""&gt;                                                                                                                                      &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;Picture 4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;For pic 3 hope everything clear to you. But my comments here is, when you call start server then server starts and stays active as long as you call stop server. After call start server you can’t call it again before stop server call. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;From pic 4&lt;span style=""&gt;  &lt;/span&gt;‘bufferSize’ is for declare byte array length, you can define it as your self, ‘maxClientReceived’ for how many client can send or receive data at a time. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;By using this code I’ve developed few large application, like text chat with smiles, file transfer, picture transfer, online drawing etc. &lt;span style=""&gt; &lt;/span&gt;Hope you will get a great experience by that code. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Download link&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;You can download source code from these two links-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://rapidshare.com/files/202778243/File_Transfer__DLL_-_Client_and_Server.zip"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://rapidshare.com/files/202778243/File_Transfer__DLL_-_Client_and_Server.zip"&gt;&lt;span style=""&gt;Source code is here&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="https://rapidshare.com/files/2051755716/File_Transfer_using_C__Socket.zip"&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;&lt;b&gt;https://rapidshare.com/files/2051755716/File_Transfer_using_C__Socket.zip&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;a href="http://file4upload.com/download.aspx?key=-1627382536"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;If you get benefit from that article then my request to specially you that&lt;span style="font-weight: bold;font-size:180%;" &gt; &lt;span style="color: rgb(255, 0, 0);font-size:100%;" &gt;donate&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-size:100%;" &gt; by clicking on any advertisement&lt;/span&gt;&lt;/span&gt; to encourage me to write more code to help you&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Any well come your reply on my article to here your comments.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Server Code is here :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Threading;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Net.Sockets;&lt;br /&gt;using System.IO;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;namespace ServerSockets.Synchronous.UsingByteArray&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;/// That server code will run to access multiple client requrest and response. Here will not any&lt;br /&gt;/// Un-zip and Decript technology. Server will save all data in Encripted-Zipped form which will&lt;br /&gt;/// sent by Client.&lt;br /&gt;&lt;br /&gt;public class SyncSocketServerMulClient&lt;br /&gt;{&lt;br /&gt;public static bool isServerRunning=false;&lt;br /&gt;public static int receivePort,sendPort, maxClientReceived, bufferSize;&lt;br /&gt;//public static int  progress=0 ;&lt;br /&gt;public string outPath ;&lt;br /&gt;public static string status="",presentOperation = "";&lt;br /&gt;public string currentStatus = "";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public SyncSocketServerMulClient(int receivePort,int sendPort,int maxClient, string outPutPath)&lt;br /&gt;{&lt;br /&gt;    SyncSocketServerMulClient.receivePort = receivePort;&lt;br /&gt;    SyncSocketServerMulClient.sendPort = sendPort;&lt;br /&gt;    SyncSocketServerMulClient.bufferSize = 10 * 1024;&lt;br /&gt;    SyncSocketServerMulClient.maxClientReceived = maxClient;&lt;br /&gt;&lt;br /&gt;    outPutPath = outPutPath.Replace("\\", "/");&lt;br /&gt;    if (outPutPath.Substring(outPutPath.Length - 1) != "/")&lt;br /&gt;        outPutPath += "/";&lt;br /&gt;&lt;br /&gt;    this.outPath = outPutPath;&lt;br /&gt;    SyncSocketServerMulClient.status = "";&lt;br /&gt;    //SyncSocketServerMulClient.progress = 0;&lt;br /&gt;    SyncSocketServerMulClient.presentOperation = "";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/// Default sets Receive Port:8080, Send Port:8081, Buffer Size:10KB, Max Client:100 and Out path: C:\&lt;br /&gt;&lt;br /&gt;public SyncSocketServerMulClient()&lt;br /&gt;{&lt;br /&gt;    SyncSocketServerMulClient.receivePort = 8080;&lt;br /&gt;    SyncSocketServerMulClient.sendPort = 8081;&lt;br /&gt;    SyncSocketServerMulClient.bufferSize = 10 * 1024;&lt;br /&gt;    SyncSocketServerMulClient.maxClientReceived = 100;&lt;br /&gt;    this.outPath = "c:/";&lt;br /&gt;    SyncSocketServerMulClient.status = "";&lt;br /&gt;    //SyncSocketServerMulClient.progress = 0;&lt;br /&gt;    SyncSocketServerMulClient.presentOperation = "";&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;#region SERVER SYNCHRONOUS SOCKET DATA RECEIVE&lt;br /&gt;Thread threadReceiveServer, threadSendServer;&lt;br /&gt;private void StartReceiveServer()&lt;br /&gt;{&lt;br /&gt;    SyncSocketServerMulClient.isServerRunning = true;&lt;br /&gt;    threadReceiveServer = new Thread(new ThreadStart(this.StartReceiveServerThread));&lt;br /&gt;    threadReceiveServer.Start();&lt;br /&gt;}&lt;br /&gt;private void StopReceiveServer()&lt;br /&gt;{&lt;br /&gt;    SyncSocketServerMulClient.isServerRunning = false;&lt;br /&gt;    //&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        IPAddress[] ipAddress = Dns.GetHostAddresses("localhost");&lt;br /&gt;        IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], SyncSocketServerMulClient.receivePort);&lt;br /&gt;        Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;br /&gt;        clientSock.Connect(ipEnd);&lt;br /&gt;&lt;br /&gt;        string strData = "END";&lt;br /&gt;        byte[] clientData = new byte[30];&lt;br /&gt;        clientData = Encoding.ASCII.GetBytes(strData);&lt;br /&gt;        clientSock.Send(clientData);&lt;br /&gt;&lt;br /&gt;        //byte[] serverData = new byte[10];&lt;br /&gt;        //int len = clientSock.Receive(serverData);&lt;br /&gt;        //Console.WriteLine(Encoding.ASCII.GetString(serverData, 0, len));&lt;br /&gt;        clientSock.Close();&lt;br /&gt;&lt;br /&gt;        Console.ReadLine();&lt;br /&gt;    }&lt;br /&gt;    catch (Exception ex)&lt;br /&gt;    {&lt;br /&gt;        Console.WriteLine(ex.Message);&lt;br /&gt;        Console.ReadLine();&lt;br /&gt;    }&lt;br /&gt;    //&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Socket receiveSock,sendSock;&lt;br /&gt;IPEndPoint ipEndReceive, ipEndSend;&lt;br /&gt;private void StartReceiveServerThread()&lt;br /&gt;{&lt;br /&gt;    ipEndReceive = new IPEndPoint(IPAddress.Any, SyncSocketServerMulClient.receivePort);&lt;br /&gt;    receiveSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;br /&gt;    receiveSock.Bind(ipEndReceive);&lt;br /&gt;    SyncSocketServerMulClient.isServerRunning = true;&lt;br /&gt;    receiveSock.Listen(maxClientReceived);&lt;br /&gt;    Console.WriteLine("Waiting for new client connection");&lt;br /&gt;    while (SyncSocketServerMulClient.isServerRunning)&lt;br /&gt;    {&lt;br /&gt;        Socket clientSock;&lt;br /&gt;        clientSock = receiveSock.Accept();&lt;br /&gt;&lt;br /&gt;        SyncSocketServerMulClient serObj = new SyncSocketServerMulClient(SyncSocketServerMulClient.receivePort, SyncSocketServerMulClient.sendPort, SyncSocketServerMulClient.bufferSize, this.outPath);&lt;br /&gt;        Thread newClient = new Thread(serObj.ReadDataFromClient);&lt;br /&gt;        newClient.Start(clientSock);&lt;br /&gt;    }&lt;br /&gt;    receiveSock.Close();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;private void ReadDataFromClient(object clientObject)&lt;br /&gt;{&lt;br /&gt;    Socket clientSock = null;&lt;br /&gt;    BinaryWriter bWriter=null;&lt;br /&gt;    string fileName = "";&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        SyncSocketServerMulClient.status = "";&lt;br /&gt;        SyncSocketServerMulClient.presentOperation = "";&lt;br /&gt;        clientSock = (Socket)clientObject;&lt;br /&gt;        bool flag = true;&lt;br /&gt;        Console.WriteLine("New connection estublished. Socket {0}", clientSock.GetHashCode());&lt;br /&gt;        int totalDataLen, receivedLen, fileNameLen, fileContentStartIndex;&lt;br /&gt;&lt;br /&gt;        byte[] data = new byte[bufferSize];&lt;br /&gt;        //DATA FORMAT: [FILE SIZE LEN INFO[0-3]][FILE NAME LEN INFO[4-7]][FILE NAME DATA][FILE CONTENT]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        //GET FILE NAME, SIZE ETC.&lt;br /&gt;        currentStatus =presentOperation = "Data Receiving";&lt;br /&gt;        int len = clientSock.Receive(data);&lt;br /&gt;        if (len == 0)&lt;br /&gt;        {&lt;br /&gt;            clientSock.Close();&lt;br /&gt;            return;&lt;br /&gt;        }&lt;br /&gt;        if (len == 3)&lt;br /&gt;        {&lt;br /&gt;            string clientData = Encoding.ASCII.GetString(data);&lt;br /&gt;            if (clientData.Substring(0, len) == "END")&lt;br /&gt;                return;&lt;br /&gt;        }&lt;br /&gt;        totalDataLen = BitConverter.ToInt32(data, 0);&lt;br /&gt;        fileNameLen = BitConverter.ToInt32(data, 4);&lt;br /&gt;        fileName = Encoding.ASCII.GetString(data, 8, fileNameLen);&lt;br /&gt;        fileContentStartIndex = 4 + 4 + fileNameLen;&lt;br /&gt;        receivedLen = len - fileContentStartIndex;&lt;br /&gt;        //READ DATA &amp;amp; STORE OF FIRST PACKET&lt;br /&gt;&lt;br /&gt;        //DELETE IF FILE ALREADY EXIST&lt;br /&gt;        if (File.Exists(outPath + fileName))&lt;br /&gt;            File.Delete(outPath + fileName);&lt;br /&gt;&lt;br /&gt;        bWriter = new BinaryWriter(File.Open(outPath + fileName, FileMode.Append));&lt;br /&gt;        bWriter.Write(data, 0, len);&lt;br /&gt;        while (true)&lt;br /&gt;        {&lt;br /&gt;            if (receivedLen &amp;lt; len =" clientSock.Receive(data);" currentstatus ="presentOperation" currentstatus =" presentOperation" clientinfodata =" new" clientinfodata =" Encoding.ASCII.GetBytes(" status = "Access Denied by server end." status = "Address Already In Use." status = "Address Not Available." status = "Connection aborted by server." status = "Connection refused by server." status = "Connection Reset." status = "Destination Address Required." status = "Disconnecting." status = "Target Host is Down." status = "Target Host Not Found." status = "Target Host Unreachable." status = "In Progress." status = "Interrupted." status = "Invalid Argument." status = "Network Down." status = "Network Reset." status = "Network Unreachable." status = "No Buffer Space Available." status = "No Data." status = "Not Connected." status = "Not Initialized." status = "Not Socket." status = "Operation Aborted." status = "Socket already Shutdown." status = "Too Many Open Sockets." status = "Too Many Open Sockets." status = "Have some unknown problem in Socket." isserverrunning =" true;" threadsendserver =" new" ipendsend =" new" sendsock =" new" isserverrunning =" true;" clientsock =" sendSock.Accept();" serobj =" new" newclient =" new" clientsocket="(Socket)clientObject;" filenamewithpath = "" breader =" null;" status = "" clientdata =" new" clientdatalen =" clientSocket.Receive(clientData);" clientdatalen ="=" clientdatalen ="=" clientdatastr =" Encoding.ASCII.GetString(clientData);" clientidlen =" BitConverter.ToInt32(clientData," filenamelen=" BitConverter.ToInt32(clientData," clientid =" Encoding.ASCII.GetString(clientData," filename =" Encoding.ASCII.GetString(clientData," copiedfilename =" clientId" filenamewithpath =" this.outPath;" filenamewithpath =" fileNameWithPath.Replace(" length ="=" currentstatus =" presentOperation" breader =" new" data =" new" sentdatasize =" (int)bReader.BaseStream.Length;" data =" new" sentdatasize =" bufferSize;" totalsentdataslot =" 1;" totaldatasize =" (int)bReader.BaseStream.Length;" progress =" (int)(((float)sentDataSize" progress =" (int)(((float)sentDataSize" enddata =" new" sentdatasize =" (int)bReader.BaseStream.Length;" progress =" (int)(((float)sentDataSize" currentstatus =" presentOperation" strfleerr = "ERROR" tempfleerrarr =" Encoding.ASCII.GetBytes(strFleErr);" currentstatus =" presentOperation" status = "Access Denied by server end." status = "Address Already In Use." status = "Address Not Available." status = "Connection aborted by server." status = "Connection refused by server." status = "Connection Reset." status = "Destination Address Required." status = "Disconnecting." status = "Target Host is Down." status = "Target Host Not Found." status = "Target Host Unreachable." status = "In Progress." status = "Interrupted." status = "Invalid Argument." status = "Network Down." status = "Network Reset." status = "Network Unreachable." status = "No Buffer Space Available." status = "No Data." status = "Not Connected." status = "Not Initialized." status = "Not Socket." status = "Operation Aborted." status = "Socket already Shutdown." status = "Too Many Open Sockets." status = "Too Many Open Sockets." status = "Have some unknown problem in Socket." status =" ex.Message;" isserverrunning =" false;" ipaddress =" Dns.GetHostAddresses(" ipend =" new" clientsock =" new" strdata = "END" clientdata =" new" clientdata =" Encoding.ASCII.GetBytes(strData);" serverdata =" new" len =" clientSock.Receive(serverData);" style="font-weight: bold; color: rgb(51, 51, 255);" size="4"&amp;gt;Client Code is here:&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Threading;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Net.Sockets;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;&lt;br /&gt;namespace ClientSockets.Synchronous.UsingByteArray // SyncScoketClient_ByteArr_Dll&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;/// Client open a syncronous socket and send file to server, here asynchronous mode becomes by&lt;br /&gt;/// Threading, and here uses Byte Array to transfer data.&lt;br /&gt;&lt;br /&gt;public class SynchronusClient_ByteArr&lt;br /&gt;{&lt;br /&gt;public delegate void FileSendCompletedDelegate();&lt;br /&gt;public event FileSendCompletedDelegate FileSendCompleted, FileReceiveCompleted;&lt;br /&gt;public static int progress = 0, portSend, portReceive;&lt;br /&gt;int bufferSize;&lt;br /&gt;public static string status = "", presentOperation = "", ipAddress, outPathDefault = "";&lt;br /&gt;private static string outPathUserSelected = "";&lt;br /&gt;string clientId = "";&lt;br /&gt;string fileNameWithPath;&lt;br /&gt;public static bool isSaveToDefaultPath = false;&lt;br /&gt;static int totalSentDataSlot;&lt;br /&gt;&lt;br /&gt;public SynchronusClient_ByteArr(string clientId, string ipAddress, int sendPort, int receivePort, string DefaultPath)&lt;br /&gt;{&lt;br /&gt;    this.clientId = clientId;&lt;br /&gt;    SynchronusClient_ByteArr.ipAddress = ipAddress;&lt;br /&gt;    SynchronusClient_ByteArr.portSend = sendPort;&lt;br /&gt;    SynchronusClient_ByteArr.portReceive = receivePort;&lt;br /&gt;    SynchronusClient_ByteArr.outPathDefault = DefaultPath;&lt;br /&gt;    this.bufferSize = 10 * 1024;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/// Conestructor of Client Object&lt;br /&gt;&lt;br /&gt;public SynchronusClient_ByteArr(string clientId, string ipAddress, string DefaultPath)&lt;br /&gt;{&lt;br /&gt;    this.clientId = clientId;&lt;br /&gt;    outPathDefault = DefaultPath;&lt;br /&gt;    SynchronusClient_ByteArr.ipAddress = ipAddress;&lt;br /&gt;    SynchronusClient_ByteArr.portSend = 8080;&lt;br /&gt;    SynchronusClient_ByteArr.portReceive = 8081;&lt;br /&gt;    this.bufferSize = 10 * 1024;&lt;br /&gt;}&lt;br /&gt;Thread startFileTransferThread, startFileReceiveThread;&lt;br /&gt;public string SendFileToServer( string senderId, string receiverId)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    string newFileName, onlyFileName, path;&lt;br /&gt;&lt;br /&gt;    //Select a File to transfer&lt;br /&gt;    OpenFileDialog ofd = new OpenFileDialog();&lt;br /&gt;    if (ofd.ShowDialog() != DialogResult.OK)&lt;br /&gt;        return "Cancelled by user";&lt;br /&gt;    string fileNameWithPath = ofd.FileName;&lt;br /&gt;    fileNameWithPath = fileNameWithPath.Replace("\\", "/");&lt;br /&gt;    onlyFileName = fileNameWithPath;&lt;br /&gt;    path = "";&lt;br /&gt;&lt;br /&gt;    while (onlyFileName.IndexOf("/") != -1)&lt;br /&gt;    {&lt;br /&gt;        path += onlyFileName.Substring(0, onlyFileName.IndexOf("/")) + "/";&lt;br /&gt;        onlyFileName = onlyFileName.Substring(onlyFileName.IndexOf("/") + 1);&lt;br /&gt;    }&lt;br /&gt;    newFileName = senderId + "#" + onlyFileName;&lt;br /&gt;    //File.Copy(fileNameWithPath, path + "/" + newFileName,true);&lt;br /&gt;    //File.SetAttributes(path + "/" + newFileName, FileAttributes.Hidden);&lt;br /&gt;&lt;br /&gt;    string bothName = fileNameWithPath + "?" + path + "/" + newFileName;&lt;br /&gt;    startFileTransferThread = new Thread(this.SendFileToServerByThread);&lt;br /&gt;    startFileTransferThread.Start(bothName);&lt;br /&gt;&lt;br /&gt;    //NEW FILE NAME IS NOW IN IT'S OWN EXTENSION NEED TO CHANGE .sjb FORM&lt;br /&gt;    //Only file name&lt;br /&gt;    int k = newFileName.Length - 1;&lt;br /&gt;    while (newFileName.Substring(k, 1) != ".")&lt;br /&gt;    {&lt;br /&gt;        k--;&lt;br /&gt;    }&lt;br /&gt;    newFileName = newFileName.Substring(0, k);&lt;br /&gt;    newFileName = newFileName + ".sjb";&lt;br /&gt;&lt;br /&gt;    return newFileName;&lt;br /&gt;}&lt;br /&gt;private void SendFileToServerByThread(object fileNameWithPathObj)&lt;br /&gt;{&lt;br /&gt;    Socket server = null;&lt;br /&gt;    BinaryReader bReader = null;&lt;br /&gt;    string newFileName = "";&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        //BUILD A COPY OF SENDING FILE&lt;br /&gt;        string oldFileName, bothFileName;&lt;br /&gt;        bothFileName = fileNameWithPathObj.ToString();&lt;br /&gt;        oldFileName = bothFileName.Substring(0, bothFileName.IndexOf("?"));&lt;br /&gt;        newFileName = bothFileName.Substring(bothFileName.IndexOf("?") + 1);&lt;br /&gt;&lt;br /&gt;        string filePath = "", tempFileName = oldFileName;&lt;br /&gt;        while (tempFileName.IndexOf("/") != -1)&lt;br /&gt;        {&lt;br /&gt;            filePath += tempFileName.Substring(0, tempFileName.IndexOf("/") + 1);&lt;br /&gt;            tempFileName = tempFileName.Substring(tempFileName.IndexOf("/") + 1);&lt;br /&gt;        }&lt;br /&gt;        if (File.Exists(newFileName))&lt;br /&gt;            File.Delete(newFileName);&lt;br /&gt;&lt;br /&gt;        File.Copy(oldFileName, newFileName, true);&lt;br /&gt;        File.SetAttributes(newFileName, FileAttributes.Hidden);&lt;br /&gt;&lt;br /&gt;        status = "";&lt;br /&gt;        this.fileNameWithPath = newFileName;&lt;br /&gt;        //presentOperation = "Data Compressing";&lt;br /&gt;        //this.fileNameWithPath = ZipUnzip.LZO_Algorithm.LZO.Compress(this.fileNameWithPath);&lt;br /&gt;        //File.SetAttributes(filePath + this.fileNameWithPath, FileAttributes.Hidden);&lt;br /&gt;&lt;br /&gt;        if (this.fileNameWithPath.Length == 0)&lt;br /&gt;            return;&lt;br /&gt;&lt;br /&gt;        this.fileNameWithPath = filePath + tempFileName;// this.fileNameWithPath;&lt;br /&gt;        presentOperation = "Data Sending";&lt;br /&gt;        IPAddress[] serverIp = Dns.GetHostAddresses(SynchronusClient_ByteArr.ipAddress);&lt;br /&gt;        IPEndPoint ipEnd = new IPEndPoint(serverIp[0], SynchronusClient_ByteArr.portSend);&lt;br /&gt;        server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;br /&gt;&lt;br /&gt;        server.Connect(ipEnd);&lt;br /&gt;&lt;br /&gt;        int sentDataSize;&lt;br /&gt;        byte[] data;// = new byte[bufferSize];&lt;br /&gt;&lt;br /&gt;        bReader = new BinaryReader(File.Open(fileNameWithPath, FileMode.Open));&lt;br /&gt;        if (bReader.BaseStream.Length &amp;lt;= bufferSize)                 {                     data = new byte[bReader.BaseStream.Length];                     bReader.Read(data, 0, (int)bReader.BaseStream.Length);                     sentDataSize = (int)bReader.BaseStream.Length;                 }                 else                 {                     data = new byte[bufferSize];                     bReader.Read(data, 0, bufferSize);                     sentDataSize = bufferSize;                 }                  string onlyFileName;                 fileNameWithPath = fileNameWithPath.Replace("\\", "/");                 onlyFileName = fileNameWithPath;                 while (onlyFileName.IndexOf("/") != -1)                     onlyFileName = onlyFileName.Substring(onlyFileName.IndexOf("/") + 1);                   //DATA FORMAT: [FILE SIZE LEN INFO[0-3]][FILE NAME LEN INFO[4-7]][FILE NAME DATA][FILE CONTENT]                  byte[] dataLenBytes = BitConverter.GetBytes((int)bReader.BaseStream.Length);                 byte[] fileNameLenBytes = BitConverter.GetBytes(onlyFileName.Length);                 byte[] fileNameBytes = Encoding.ASCII.GetBytes(onlyFileName);                  byte[] allData = new byte[8 + fileNameBytes.Length + data.Length];                  //MAKE FIRST PACKET TO SERVER WITH FILE SIZE &amp;amp; FILE NAME                 dataLenBytes.CopyTo(allData, 0);                 fileNameLenBytes.CopyTo(allData, 4);                 fileNameBytes.CopyTo(allData, 8);                 data.CopyTo(allData, 8 + fileNameBytes.Length);                  //SEND FIRST PACKET TO SERVER                 server.Send(allData);                 totalSentDataSlot = 1;                  int totalDataSize = (int)bReader.BaseStream.Length;                 progress = (int)(((float)sentDataSize / totalDataSize) * 100);                  while (sentDataSize &amp;lt; progress =" (int)(((float)sentDataSize" enddata =" new" sentdatasize =" (int)bReader.BaseStream.Length;" progress =" (int)(((float)sentDataSize" receivedata =" new" recvlen =" server.Receive(receiveData);" presentoperation = "Data Sending Completed" status = "Access Denied by server end." status = "Address Already In Use." status = "Address Not Available." status = "Connection aborted by server." status = "Connection refused by server." status = "Connection Reset." status = "Destination Address Required." status = "Disconnecting." status = "Target Host is Down." status = "Target Host Not Found." status = "Target Host Unreachable." status = "In Progress." status = "Interrupted." status = "Invalid Argument." status = "Network Down." status = "Network Reset." status = "Network Unreachable." status = "No Buffer Space Available." status = "No Data." status = "Not Connected." status = "Not Initialized." status = "Not Socket." status = "Operation Aborted." status = "Socket already Shutdown." status = "Too Many Open Sockets." status = "Too Many Open Sockets." status = "Have some unknown problem in Socket." status =" ex.Message;" fbd =" new" outpathuserselected =" fbd.SelectedPath;" startfilereceivethread =" new" outpathuserselected =" ReceivePath;" startfilereceivethread =" new" server =" null;" bwriter =" null;" rcvfilename = "" filename = "" status = "" onlyfilename =" onlyFileNameObj.ToString();" presentoperation = "Data Compressing" length ="=" clientid =" DateTime.Now.Ticks.ToString();" clientidlenbytes =" BitConverter.GetBytes(clientId.Length);" clientidbytes =" Encoding.ASCII.GetBytes(clientId);" filenamelenbytes =" BitConverter.GetBytes(onlyFileName.Length);" filenamebytes =" Encoding.ASCII.GetBytes(onlyFileName);" alldata =" new" presentoperation = "Data Sending" serverip =" Dns.GetHostAddresses(SynchronusClient_ByteArr.ipAddress);" ipend =" new" server =" new" status = "" progress =" 0;" presentoperation = "" server =" (Socket)clientObject;" flag =" true;" data =" new" presentoperation = "Data Receiving" len =" server.Receive(data);" len ="=" strtemp =" Encoding.ASCII.GetString(data," strtemp ="=" status = "File yet not sent by Sender" presentoperation = "Data Receiving Not Started" progress =" 0;" totaldatalen =" BitConverter.ToInt32(data," filenamelen =" BitConverter.ToInt32(data," filename =" Encoding.ASCII.GetString(data," filecontentstartindex =" 4" receivedlen =" len;//" outpathdefault =" outPathDefault.Replace(" outpathuserselected =" outPathUserSelected.Replace(" fbd =" new" bwriter =" new" bwriter =" new" bwriter =" new" progress =" (int)(((float)receivedLen" len =" server.Receive(data);" val =" (float)receivedLen" progress =" (int)(((float)receivedLen" presentoperation = "Data Decompressing" rcvfilename =" ZipUnzip.LZO_Algorithm.LZO.Decompress(outPathDefault" rcvfilename =" ZipUnzip.LZO_Algorithm.LZO.Decompress(outPathUserSelected" orgfilename =" rcvFileName=" orgfilename =" orgFileName.Substring(orgFileName.IndexOf(" isserverrunning =" false;" presentoperation = "Data Receiving Completed" progress =" 100;" status = "Access Denied by server end." status = "Address Already In Use." status = "Address Not Available." status = "Connection aborted by server." status = "Connection refused by server." status = "Connection Reset." status = "Destination Address Required." status = "Disconnecting." status = "Target Host is Down." status = "Target Host Not Found." status = "Target Host Unreachable." status = "In Progress." status = "Interrupted." status = "Invalid Argument." status = "Network Down." status = "Network Reset." status = "Network Unreachable." status = "No Buffer Space Available." status = "No Data." status = "Not Connected." status = "Not Initialized." status = "Not Socket." status = "Operation Aborted." status = "Socket already Shutdown." status = "Too Many Open Sockets." status = "Too Many Open Sockets." status = "Have some unknown problem in Socket." status =" ex.Message;" style=""&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-4079938789730009258?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/4079938789730009258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=4079938789730009258' title='54 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/4079938789730009258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/4079938789730009258'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2009/02/transfer-large-file-2gb-using-socket-in.html' title='Large File (2 GB) Transfer using C# Socket'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hrre9HnkHlU/SafOnC7q6qI/AAAAAAAACPQ/GsB8DmMZfmQ/s72-c/pic1.JPG' height='72' width='72'/><thr:total>54</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-236450408461159663</id><published>2008-11-25T23:04:00.000-08:00</published><updated>2011-05-18T09:59:50.196-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='File Transfer'/><category scheme='http://www.blogger.com/atom/ns#' term='file cutter'/><category scheme='http://www.blogger.com/atom/ns#' term='TCP Socket'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='socket'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='IO'/><category scheme='http://www.blogger.com/atom/ns#' term='file IO'/><title type='text'>Split and Assemble large file (around 2GB) in C# dot net  Programming</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hrre9HnkHlU/SSz1Z-61GrI/AAAAAAAAADw/hWDqvFJDT_A/s1600-h/fileCutterAssembler.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 132px;" src="http://3.bp.blogspot.com/_hrre9HnkHlU/SSz1Z-61GrI/AAAAAAAAADw/hWDqvFJDT_A/s320/fileCutterAssembler.JPG" alt="" id="BLOGGER_PHOTO_ID_5272859090479291058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hi friends after a long time I’m back again. Now with a quite different coding flavor in different area. I will express about some operation with File. I will give some code to split and assemble large file. These codes can split up to 2 GB (approximately) file to any number of small file (minimum 1 MB) and also can assemble these small files to get the original file. Be sure that in assembling all small files need to keep in a folder otherwise it will fail to make original file and throw an error.&lt;br /&gt;&lt;br /&gt;To do this in C# dot net ,  I’ve taken help of  System.IO namespace and BinaryReader and BinaryWriter class. To learn about these classes please see msdn site. Here I’ve follow very simple algorithm.&lt;br /&gt;&lt;br /&gt;For slice a file steps are:&lt;br /&gt;(i) Open a large file in read mode by binary reader stream.&lt;br /&gt;(ii) Execute step iii and step v, until file read reach at end of file.&lt;br /&gt;(iii) Read from that stream and set these bytes in byte array&lt;br /&gt;(iv) Make a new file name from original file name with slice number, for last file slice add ‘E’ after slice number.&lt;br /&gt;(v) Save these bytes from array to a new file with  ‘File’ class’s ‘WriteAllBytes’ method.&lt;br /&gt;(vi) close the dot net binary stream.&lt;br /&gt;&lt;br /&gt;Download source code from here:&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;a href="https://rapidshare.com/files/2226737217/FileCutter_Assembler_using_C_.zip"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;https://rapidshare.com/files/2226737217/FileCutter_Assembler_using_C_.zip&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These code as follows –&lt;br /&gt;&lt;br /&gt;(i)      BinaryReader br=new BinaryReader(File.Open(filename, FileMode.Open));&lt;br /&gt;&lt;br /&gt;(ii)    while (br.BaseStream.Length &amp;gt; sliceLen * counter)&lt;br /&gt;&lt;br /&gt;(iii)      br.BaseStream.Read(buffer, 0, sliceLen);&lt;br /&gt;(iv)     curFileName = filename + "." + counter.ToString();&lt;br /&gt;     curFileName = filename + "." + counter.ToString() + ".E";&lt;br /&gt;(v)      File.WriteAllBytes(curFileName, buffer);&lt;br /&gt;(vi)      br.Close();&lt;br /&gt;&lt;br /&gt;For assemble these files need to follow these steps –&lt;br /&gt;&lt;br /&gt;(i) Create a binary writer stream and open a binary file in append mode.&lt;br /&gt;(ii) Execute from step iii to v&lt;br /&gt;(iii) Generate file name in runtime depends on pervious file name.&lt;br /&gt;(iv) Check for last file slice, last file slice name ends with last character ‘E’. If present file is the last slice then exit from that loop.&lt;br /&gt;(v) Read all bytes from file and set in a byte array then write these byte data by binary writer.&lt;br /&gt;(vi) Close the binary writer.&lt;br /&gt;&lt;br /&gt;These code as follows-&lt;br /&gt;&lt;br /&gt;(i) BinaryWriter bw = new BinaryWriter(File.Open(orgFile, FileMode.Append))&lt;br /&gt;(ii) while(true)&lt;br /&gt;(iii)      nextFileName = orgFile + "." + counter.ToString();&lt;br /&gt;(iv)       if (File.Exists(nextFileName + ".E"))&lt;br /&gt;  &lt;br /&gt;(v)        buffer = File.ReadAllBytes(nextFileName + ".E");&lt;br /&gt;            bw.Write(buffer);&lt;br /&gt;(vii) bw.Close();&lt;br /&gt;&lt;br /&gt;I’ve not covered everything in algorithm but I believe that you will understand these easily.&lt;br /&gt;&lt;br /&gt;The complete codes are given below:&lt;br /&gt;&lt;br /&gt;// File cutter assembler in microsoft c# dot net&lt;br /&gt;//This code has written by Suman Biswas in 2008.&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.IO;&lt;br /&gt;&lt;br /&gt;namespace FileCutter&lt;br /&gt;{&lt;br /&gt;//This class is used to call the actual file operation class.&lt;br /&gt;public partial class Form1 : Form&lt;br /&gt;{&lt;br /&gt; public Form1()&lt;br /&gt; {&lt;br /&gt;     InitializeComponent();&lt;br /&gt;     this.Text = "File cutter &amp;amp; assembler (upto 1.96 GB) by Suman Biswas";&lt;br /&gt; }&lt;br /&gt; FileHandling obj = new FileHandling();&lt;br /&gt; private void btnSelectFile_Click(object sender, EventArgs e)&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt;     obj.SplitUp(SelectFile(),int.Parse(textBox1.Text));&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private void button1_Click(object sender, EventArgs e)&lt;br /&gt; {&lt;br /&gt;     obj.MargeUp(SelectFile());&lt;br /&gt; }&lt;br /&gt; private string SelectFile()&lt;br /&gt; {&lt;br /&gt;     OpenFileDialog fbd = new OpenFileDialog();&lt;br /&gt;     if (fbd.ShowDialog() != DialogResult.OK)&lt;br /&gt;     {&lt;br /&gt;         MessageBox.Show("No file selected");&lt;br /&gt;         return "";&lt;br /&gt;     }&lt;br /&gt;     else&lt;br /&gt;         return fbd.FileName;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Main file operation is done here.&lt;br /&gt;class FileHandling&lt;br /&gt;{&lt;br /&gt; int sliceLen = 1024 * 1024;&lt;br /&gt; int counter = 0;&lt;br /&gt;&lt;br /&gt; public void SplitUp(string filename,int fileSizeInMB)&lt;br /&gt; {&lt;br /&gt;     if (fileSizeInMB &amp;lt; slicelen =" 1024" counter =" 0;" buffer="new" br="new" slicelen =" (int)br.BaseStream.Length;"&amp;gt; sliceLen * counter)&lt;br /&gt;     {&lt;br /&gt;         if (br.BaseStream.Length &amp;gt; sliceLen * (counter + 1))&lt;br /&gt;         {&lt;br /&gt;             br.BaseStream.Read(buffer, 0, sliceLen);&lt;br /&gt;             curFileName = filename + "." + counter.ToString();&lt;br /&gt;         }&lt;br /&gt;         else&lt;br /&gt;         {&lt;br /&gt;             int remainLen = (int)br.BaseStream.Length - sliceLen * counter;&lt;br /&gt;             buffer = new byte[remainLen];&lt;br /&gt;             br.BaseStream.Read(buffer, 0, remainLen);&lt;br /&gt;             curFileName = filename + "." + counter.ToString() + ".E";&lt;br /&gt;         }&lt;br /&gt;  &lt;br /&gt;         if (File.Exists(curFileName))&lt;br /&gt;             File.Delete(curFileName);&lt;br /&gt;&lt;br /&gt;         File.WriteAllBytes(curFileName, buffer);&lt;br /&gt;         counter++;&lt;br /&gt;     }&lt;br /&gt;     br.Close();&lt;br /&gt;     MessageBox.Show("File spilitted successfully");&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void MargeUp(string firstFileName)&lt;br /&gt; {&lt;br /&gt;     if (firstFileName.Length &amp;lt; 1)&lt;br /&gt;         return;&lt;br /&gt;&lt;br /&gt;     string endPart = firstFileName;&lt;br /&gt;     string orgFile = "";&lt;br /&gt;&lt;br /&gt;     orgFile = endPart.Substring(0, endPart.LastIndexOf("."));&lt;br /&gt;     endPart = endPart.Substring(endPart.LastIndexOf(".") + 1);&lt;br /&gt;&lt;br /&gt;     if (endPart == "E")//If only one slice is there&lt;br /&gt;     {&lt;br /&gt;         orgFile = orgFile.Substring(0, orgFile.LastIndexOf("."));&lt;br /&gt;         endPart = "0";&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     if (File.Exists(orgFile))&lt;br /&gt;     {&lt;br /&gt;         if (MessageBox.Show(orgFile + " already exists, do you want to delete it", "", MessageBoxButtons.YesNo) == DialogResult.Yes)&lt;br /&gt;             File.Delete(orgFile);&lt;br /&gt;         else&lt;br /&gt;         {&lt;br /&gt;             MessageBox.Show("File not assembled. Operation cancelled by user.");&lt;br /&gt;             return;&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     //Assembling starts from here&lt;br /&gt;     BinaryWriter bw = new BinaryWriter(File.Open(orgFile, FileMode.Append));&lt;br /&gt;     string nextFileName = "";&lt;br /&gt;     byte []buffer=new byte [bw.BaseStream.Length];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     int counter=int.Parse(endPart);&lt;br /&gt;     while(true)&lt;br /&gt;     {&lt;br /&gt;         nextFileName = orgFile + "." + counter.ToString();&lt;br /&gt;         if (File.Exists(nextFileName + ".E"))&lt;br /&gt;         {&lt;br /&gt;             //Last slice&lt;br /&gt;             buffer = File.ReadAllBytes(nextFileName + ".E");&lt;br /&gt;             bw.Write(buffer);&lt;br /&gt;             break;&lt;br /&gt;         }&lt;br /&gt;         else&lt;br /&gt;         {&lt;br /&gt;             buffer = File.ReadAllBytes(nextFileName);&lt;br /&gt;             bw.Write(buffer);&lt;br /&gt;         }&lt;br /&gt;         counter++;&lt;br /&gt;     }&lt;br /&gt;     bw.Close();&lt;br /&gt;     MessageBox.Show("File assebled successfully");&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-236450408461159663?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/236450408461159663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=236450408461159663' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/236450408461159663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/236450408461159663'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2008/11/split-and-assemble-large-file-around.html' title='Split and Assemble large file (around 2GB) in C# dot net  Programming'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hrre9HnkHlU/SSz1Z-61GrI/AAAAAAAAADw/hWDqvFJDT_A/s72-c/fileCutterAssembler.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-1012546622040819301</id><published>2008-04-11T05:03:00.000-07:00</published><updated>2009-06-11T05:47:55.084-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stored Procedure'/><category scheme='http://www.blogger.com/atom/ns#' term='TCP Socket'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='FTP C#'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='run any stored procedure'/><title type='text'>Run any Stored Procedure from .Net - version 2</title><content type='html'>&lt;p style="color: rgb(153, 0, 0);" class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Please change  &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;"(less than)" with it's sign.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;In my &lt;a href="http://socketprogramming.blogspot.com/2008/02/run-any-stored-procedure-from-net.html"&gt;last article&lt;/a&gt; I found some limitation and this code also quite large so I’ve write it’s modified code to run stored procedure. It’s more powerful and comparatively very low code and use is also very easy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;When you run a stored procedure by that code you need to call one function to run specific stored procedure and for every argument need to call just a function. Also here I’ve handle arraylist internally which was need to use externally by you. Also you can use ADO.Net ’s&lt;span style=""&gt;  &lt;/span&gt;enum to provide table’s field data type and parameter direction also you can use ado.net enum.&lt;br /&gt;   &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Hove ever I’m giving one sample code which you need to write. It’s very easy, just create an object of that class, then invoke these functions. Codes are below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Create object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;ExecSpClass&lt;/span&gt;&lt;span style=""&gt; objSp = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;ExecSpClass&lt;/span&gt;(&lt;span style="color:maroon;"&gt;"Connection string write here"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Pass arguments: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;objSp.AddArgument(&lt;span style="color:maroon;"&gt;"@nextName"&lt;/span&gt;, &lt;span style="color:maroon;"&gt;"Suman Biswas"&lt;/span&gt;, &lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt;.VarChar, &lt;span style="color:teal;"&gt;ParameterDirection&lt;/span&gt;.Input);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;objSp.AddArgument(&lt;span style="color:maroon;"&gt;"@id"&lt;/span&gt;, &lt;span style="color:maroon;"&gt;"2"&lt;/span&gt;,&lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt;.Int,&lt;span style="color:teal;"&gt;ParameterDirection&lt;/span&gt;.Input);&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Now execute stored procedure:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;objSp.ExecSpNonQuery(&lt;span style="color:maroon;"&gt;"spProjectCategoryAdd"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;Code is complete from your side to run a stored procedure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;I’m giving my code below which is doing the actual work, to learn it you can read it, I think it’s quite easy to understand.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;public&lt;/span&gt;&lt;span style=""&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:teal;"&gt;ExecSpClass&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:teal;"&gt;SPArgBuild&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; parameterName = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; parameterValue = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt; pramValueType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; &lt;span style="color:teal;"&gt;ParameterDirection&lt;/span&gt; parmDirection;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;internal&lt;/span&gt; SPArgBuild(&lt;span style="color:blue;"&gt;string&lt;/span&gt; pramName, &lt;span style="color:blue;"&gt;string&lt;/span&gt; pramValue, &lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt; pramValueType, &lt;span style="color:teal;"&gt;ParameterDirection&lt;/span&gt; parmDirection )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.parameterName = pramName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.parameterValue = pramValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.pramValueType = pramValueType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.parmDirection = parmDirection;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlConnection&lt;/span&gt; conn;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlCommand&lt;/span&gt; cmd;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlDataAdapter&lt;/span&gt; adap;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:teal;"&gt;ArrayList&lt;/span&gt; spPramArrList = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;ArrayList&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; ExecSpClass(&lt;span style="color:blue;"&gt;string&lt;/span&gt; dbConnStr)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;conn = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;SqlConnection&lt;/span&gt;(dbConnStr);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; OpenConection()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;cmd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;SqlCommand&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;adap = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;SqlDataAdapter&lt;/span&gt;(cmd);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;cmd.CommandType = &lt;span style="color:teal;"&gt;CommandType&lt;/span&gt;.StoredProcedure;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;cmd.Connection = conn;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (conn.State == &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Closed ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State == &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Broken ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State == &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Connecting ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State != &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Executing ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State != &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Fetching ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State != &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Open)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.Open();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; CloseConnection()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (conn.State != &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Closed ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State == &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Broken ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State == &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Connecting ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State != &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Executing ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State != &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Fetching ||&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.State == &lt;span style="color:teal;"&gt;ConnectionState&lt;/span&gt;.Open)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;conn.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;cmd.Dispose();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;adap.Dispose();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;           &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; AddArgument(&lt;span style="color:blue;"&gt;string&lt;/span&gt; spParmName, &lt;span style="color:blue;"&gt;string&lt;/span&gt; spParmValue, &lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt; spPramValueType, &lt;span style="color:teal;"&gt;ParameterDirection&lt;/span&gt; parmDirection)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt; spArgBuiltObj = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;(spParmName, spParmValue, spPramValueType,parmDirection);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;spPramArrList.Add(spArgBuiltObj);&lt;span style=""&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:teal;"&gt;DataTable&lt;/span&gt; ExecSpGetDataTable(&lt;span style="color:blue;"&gt;string&lt;/span&gt; spName)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; spPramName = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; spPramValue = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt; spPramDataType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:teal;"&gt;DataSet&lt;/span&gt; ds=&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;DataSet&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;OpenConection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;cmd.CommandText = spName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;for&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; i = 0; i (less than) spPramArrList.Count; i++)&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; &lt;sppramarrlist.count;&gt;&lt;/sppramarrlist.count;&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramName = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parameterName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramValue = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parameterValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramDataType = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).pramValueType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlParameter&lt;/span&gt; pram = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram = cmd.Parameters.Add(spPramName, spPramDataType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram.Value = spPramValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram.Direction = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parmDirection;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlDataAdapter&lt;/span&gt; adap = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;SqlDataAdapter&lt;/span&gt;(cmd);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;adap.Fill(ds);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;CloseConnection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; ds.Tables[0];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; ExecSpScalar(&lt;span style="color:blue;"&gt;string&lt;/span&gt; spName)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; spPramName = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; spPramValue = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;OpenConection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;cmd.CommandText = spName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt; spPramDataType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;for&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; i = 0; i (less than) spPramArrList.Count; i++)&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; &lt;sppramarrlist.count;&gt;&lt;/sppramarrlist.count;&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramName = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parameterName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramValue = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parameterValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramDataType = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).pramValueType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlParameter&lt;/span&gt; pram = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram = cmd.Parameters.Add(spPramName, spPramDataType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram.Value = spPramValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram.Direction = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parmDirection;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;noRowEfect = cmd.ExecuteScalar().ToString();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;CloseConnection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; noRowEfect;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;span style=""&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt; ExecSpNonQuery(&lt;span style="color:blue;"&gt;string&lt;/span&gt; spName)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; spPramName = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; spPramValue = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;OpenConection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;cmd.CommandText = spName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlDbType&lt;/span&gt; spPramDataType ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;for&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; i = 0; i (less than) spPramArrList.Count; i++)&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt; &lt;sppramarrlist.count;&gt;&lt;/sppramarrlist.count;&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramName = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parameterName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramValue = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parameterValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;spPramDataType = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).pramValueType;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;span style="color:teal;"&gt;SqlParameter&lt;/span&gt; pram = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram = cmd.Parameters.Add(spPramName, spPramDataType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram.Value = spPramValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                &lt;/span&gt;pram.Direction = ((&lt;span style="color:teal;"&gt;SPArgBuild&lt;/span&gt;)spPramArrList[i]).parmDirection;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt; noRowEfect= cmd.ExecuteNonQuery();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;CloseConnection();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; noRowEfect;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;"&gt;If you get any problem to run that code or understand please contact with me.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-1012546622040819301?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/1012546622040819301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=1012546622040819301' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/1012546622040819301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/1012546622040819301'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2008/04/run-any-stored-procedure-from-net.html' title='Run any Stored Procedure from .Net - version 2'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-3080821150498992474</id><published>2008-02-23T01:02:00.000-08:00</published><updated>2009-06-11T05:48:47.669-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stored Procedure'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='socket'/><category scheme='http://www.blogger.com/atom/ns#' term='FTP C#'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Run any Stored Procedure from .Net</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;NOTE: When I am tring to publish that post then getting some problem for HTML rendering so I replace two character. please replace these two character. HTML opening tag with * and HTML closing tag with $.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hi, Now I’m far from socket now Im giving some code with .Net and SQL Server related code, that code will help any one to run stored procedure, very easyly with little code. Now follow these code.&lt;br /&gt;&lt;br /&gt;Create a table to test the stored procedure, I’m giving one example:&lt;br /&gt;&lt;br /&gt;CREATE TABLE client(&lt;br /&gt;   id int IDENTITY(1,1) NOT NULL,&lt;br /&gt;   Name varchar(64)  NULL,&lt;br /&gt;   jdate datetime NULL&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Then insert some data into that table.&lt;br /&gt;&lt;br /&gt;INSERT INTO client(Name,jdate)VALUES ('Taniya',getdate())&lt;br /&gt;INSERT INTO client(Name,jdate)VALUES ('Jhuma',getdate())&lt;br /&gt;INSERT INTO client(Name,jdate)VALUES ('Ganesh',getdate())&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then create a stored procedure to test my class, here I’m creating a stored procedure (sp) to update some data based on client id. Here store procedure’s parameters are @nextName and @id. Code is giving here:&lt;br /&gt;&lt;br /&gt;create procedure UpdateName ( @nextName varchar(256), @id int )&lt;br /&gt;as&lt;br /&gt;update client set name=@nextName where id=@id&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now sql server data base related job is done. Now will to c# related code.&lt;br /&gt;&lt;br /&gt;First giving the code by that my class will be accessed to run that stored procedure. Just note that code, only that code will be required to run any stored procedure.&lt;br /&gt;&lt;br /&gt;public class RunSP&lt;br /&gt;{&lt;br /&gt;   /// *summary$&lt;br /&gt;   /// Run Store Procedure.&lt;br /&gt;   /// */summary$&lt;br /&gt;   /// *param name="cnnStr"$Connection String of SQL server*/param$&lt;br /&gt;   public static void RunSP(string cnnStr)&lt;br /&gt;   {&lt;br /&gt;       //Create a array list to store parameter(s) with&lt;br /&gt;       //parameter name, value &amp;amp; data type.&lt;br /&gt;       ArrayList arLst = new ArrayList();&lt;br /&gt;       //Now send array list name, value &amp;amp; varchar, persingle&lt;br /&gt;       //call of that function will create one stored parameter.&lt;br /&gt;       SP.spArgumentsCollection(arLst, "@nextName", "Suman Biswas", "varchar");&lt;br /&gt;       SP.spArgumentsCollection(arLst, "@id", "2", "int");&lt;br /&gt;       //Now run stored procedure.&lt;br /&gt;       SP.RunStoredProcedure(cnnStr, "UpdateName", arLst);&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here the actual class to run stored procedure,  you can make all dll file by that code and then easily use this. Codes are below:&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient;&lt;br /&gt;&lt;br /&gt;//That code has written by Suman Biswas, that code is running fine at my testing,&lt;br /&gt;//if any one get any problem please inform me. My email is sumanbiswas@aol.in&lt;br /&gt;namespace StoredProcedureLib&lt;br /&gt;{&lt;br /&gt;   /// *summary$&lt;br /&gt;   /// This class helps to built SP argument. It can use directly to any SP. Created by Suman Biswas on 23rd Frb 2007.&lt;br /&gt;   /// */summary$&lt;br /&gt; &lt;br /&gt;   public class SP&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;       internal class SPArgBuild&lt;br /&gt;       {&lt;br /&gt;           internal string parameterName = "";&lt;br /&gt;           internal string parameterValue = "";&lt;br /&gt;           /// *summary$&lt;br /&gt;           /// Write full data type, such as SqlDBType.VarChar.&lt;br /&gt;           /// */summary$&lt;br /&gt;           internal string pramValueType = "";&lt;br /&gt;&lt;br /&gt;           /// *summary$&lt;br /&gt;           /// Use to create SP Argument Build conestruction.&lt;br /&gt;           /// */summary$&lt;br /&gt;           /// *param name="pramName"$SP Argument Parameter Name.*/param$&lt;br /&gt;           /// *param name="pramValue"$SP Argument Parameter Value.*/param$&lt;br /&gt;           internal SPArgBuild(string pramName, string pramValue, string pramValueType)&lt;br /&gt;           {&lt;br /&gt;               this.parameterName = pramName;&lt;br /&gt;               this.parameterValue = pramValue;&lt;br /&gt;               this.pramValueType = pramValueType;&lt;br /&gt;&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       /// *summary$&lt;br /&gt;       /// This function built an Array List, which is collection of some SP parameter's Name, Value and Data type.&lt;br /&gt;       /// */summary$&lt;br /&gt;       /// *param name="arrLst"$Array List which will store all argument.*/param$&lt;br /&gt;       /// *param name="spParmName"$SP Argument Parameter Name.*/param$&lt;br /&gt;       /// *param name="spParmValue"$SP Argument Parameter Value.*/param$&lt;br /&gt;       /// *param name="spPramValueType"$Parameter value type EXACTLY same as SqlDBType. E.g. 'SqlDbType.BigInt' will 'BigInt'. */param$&lt;br /&gt;       /// *returns$*/returns$&lt;br /&gt;       public static ArrayList spArgumentsCollection(ArrayList arrLst, string spParmName, string spParmValue, string spPramValueType)&lt;br /&gt;       {&lt;br /&gt;           SPArgBuild spArgBuiltObj = new SPArgBuild(spParmName, spParmValue, spPramValueType);&lt;br /&gt;           arrLst.Add(spArgBuiltObj);&lt;br /&gt;           return arrLst;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       /// *summary$&lt;br /&gt;       /// Run a stored procedure of Select SQL type.&lt;br /&gt;       /// */summary$&lt;br /&gt;       /// *param name="dbConnStr"$Connection String to connect Sql Server*/param$&lt;br /&gt;       /// *param name="ds"$DataSet which will return after filling Data*/param$&lt;br /&gt;       /// *param name="spName"$Stored Procedure Name*/param$&lt;br /&gt;       /// *param name="spPramArrList"$Parameters in ArrayList*/param$&lt;br /&gt;       /// *returns$Return DataSet after filing data by SQL.*/returns$&lt;br /&gt;       public static DataSet RunStoredProcedure(string dbConnStr, DataSet ds, string spName, ArrayList spPramArrList)&lt;br /&gt;       {&lt;br /&gt;           SqlConnection conn = new SqlConnection(dbConnStr);&lt;br /&gt;           conn.Open();&lt;br /&gt;           SqlCommand cmd = new SqlCommand();&lt;br /&gt;           cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;           cmd.Connection = conn;&lt;br /&gt;           cmd.CommandText = spName;&lt;br /&gt;&lt;br /&gt;           string spPramName = "";&lt;br /&gt;           string spPramValue = "";&lt;br /&gt;           string spPramDataType = "";&lt;br /&gt;           for (int i = 0; i * spPramArrList.Count; i++)&lt;br /&gt;           {&lt;br /&gt;               spPramName = ((SPArgBuild)spPramArrListi).parameterName;&lt;br /&gt;               spPramValue = ((SPArgBuild)spPramArrListi).parameterValue;&lt;br /&gt;               spPramDataType = ((SPArgBuild)spPramArrListi).pramValueType;&lt;br /&gt;               SqlParameter pram = null;&lt;br /&gt;               #region SQL DB TYPE AND VALUE ASSIGNMENT&lt;br /&gt;               switch (spPramDataType.ToUpper())&lt;br /&gt;               {&lt;br /&gt;                   case "BIGINT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.BigInt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "BINARY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Binary);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "BIT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Bit);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "CHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Char);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "DATETIME":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.DateTime);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "DECIMAL":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Decimal);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "FLOAT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Float);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "IMAGE":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Image);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "INT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Int);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "MONEY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Money);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "NCHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.NChar);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "NTEXT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.NText);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "NVARCHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.NVarChar);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "REAL":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Real);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "SMALLDATETIME":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.SmallDateTime);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "SMALLINT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.SmallInt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "SMALLMONEY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.SmallMoney);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "TEXT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Text);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "TIMESTAMP":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Timestamp);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "TINYINT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.TinyInt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "UDT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Udt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "UMIQUEIDENTIFIER":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.UniqueIdentifier);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "VARBINARY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.VarBinary);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "VARCHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.VarChar);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "VARIANT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Variant);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "XML":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Xml);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;               }&lt;br /&gt;               #endregion&lt;br /&gt;               pram.Direction = ParameterDirection.Input;&lt;br /&gt;           }&lt;br /&gt;&lt;br /&gt;           SqlDataAdapter adap = new SqlDataAdapter(cmd);&lt;br /&gt;&lt;br /&gt;           adap.Fill(ds);&lt;br /&gt;           return ds;&lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       /// *summary$&lt;br /&gt;       /// Run a stored procedure which will execure some nonquery SQL.&lt;br /&gt;       /// */summary$&lt;br /&gt;       /// *param name="dbConnStr"$Connection String to connect Sql Server*/param$&lt;br /&gt;       /// *param name="spName"$Stored Procedure Name*/param$&lt;br /&gt;       /// *param name="spPramArrList"$Parameters in a ArrayList*/param$&lt;br /&gt;       public static void RunStoredProcedure(string dbConnStr, string spName, ArrayList spPramArrList)&lt;br /&gt;       {&lt;br /&gt;           SqlConnection conn = new SqlConnection(dbConnStr);&lt;br /&gt;           conn.Open();&lt;br /&gt;           SqlCommand cmd = new SqlCommand();&lt;br /&gt;           cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;           cmd.Connection = conn;&lt;br /&gt;           cmd.CommandText = spName;&lt;br /&gt;&lt;br /&gt;           string spPramName = "";&lt;br /&gt;           string spPramValue = "";&lt;br /&gt;           string spPramDataType = "";&lt;br /&gt;           for (int i = 0; i * spPramArrList.Count; i++)&lt;br /&gt;           {&lt;br /&gt;               spPramName = ((SPArgBuild)spPramArrListi).parameterName;&lt;br /&gt;               spPramValue = ((SPArgBuild)spPramArrListi).parameterValue;&lt;br /&gt;               spPramDataType = ((SPArgBuild)spPramArrListi).pramValueType;&lt;br /&gt;               SqlParameter pram = null;&lt;br /&gt;               #region SQL DB TYPE AND VALUE ASSIGNMENT&lt;br /&gt;               switch (spPramDataType.ToUpper())&lt;br /&gt;               {&lt;br /&gt;                   case "BIGINT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.BigInt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "BINARY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Binary);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "BIT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Bit);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "CHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Char);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "DATETIME":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.DateTime);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "DECIMAL":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Decimal);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "FLOAT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Float);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "IMAGE":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Image);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "INT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Int);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "MONEY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Money);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "NCHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.NChar);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "NTEXT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.NText);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "NVARCHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.NVarChar);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "REAL":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Real);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "SMALLDATETIME":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.SmallDateTime);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "SMALLINT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.SmallInt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "SMALLMONEY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.SmallMoney);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "TEXT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Text);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "TIMESTAMP":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Timestamp);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "TINYINT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.TinyInt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "UDT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Udt);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "UMIQUEIDENTIFIER":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.UniqueIdentifier);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "VARBINARY":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.VarBinary);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "VARCHAR":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.VarChar);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "VARIANT":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Variant);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;&lt;br /&gt;                   case "XML":&lt;br /&gt;                       pram = cmd.Parameters.Add(spPramName, SqlDbType.Xml);&lt;br /&gt;                       pram.Value = spPramValue;&lt;br /&gt;                       break;&lt;br /&gt;               }&lt;br /&gt;               #endregion&lt;br /&gt;               pram.Direction = ParameterDirection.Input;&lt;br /&gt;           }&lt;br /&gt;           cmd.ExecuteNonQuery();&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-3080821150498992474?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/3080821150498992474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=3080821150498992474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3080821150498992474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3080821150498992474'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2008/02/run-any-stored-procedure-from-net.html' title='Run any Stored Procedure from .Net'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-65318141836180200</id><published>2007-11-21T10:31:00.000-08:00</published><updated>2011-05-18T10:05:16.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='FTP C#'/><category scheme='http://www.blogger.com/atom/ns#' term='server socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c# socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='Client Socket'/><title type='text'>File Transfer using C# .Net Socket  Programming</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;File transfer using C# socket is Client-Server combined process and quite complex too. This process we can divide in three phases. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol style="margin-top:0in" start="1" type="1"&gt;  &lt;li class="MsoNormal"  style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Preparation stage for Server and Client.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Establish communication channel to      send-receive data between Client and Server.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Break the communication channel and      release all resources.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Phase 1, Preparation:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; In that phase server and client both prepared to send some data. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;At Server&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;: Server makes an object of IPEndPoint class with some Port number with some IP address. Then creates a socket object with Internetwork family with protocol type IP(or IDP or else) to transfer Stream type data. At last bind this socket objects with that IPEndPoint object and place socket in listen mode to accept client request.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;At Client&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;: Client makes another IPEndPoint object with Server IP address and same port number. Then creates a socket object as same as Server socket object in same way. After completing these client reads a file and stores bytes data in a byte array object. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Phase 2, Establish communication and transfer data:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Now client socket tries to connect to server socket which was in listen mode. When server socket get requests from client then it accept request and established connection between server and client by producing a new socket object. Next data transmission operation continues by that new socket object. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;When new client socket request accepted by server and connection established then client send byte data by “socket-object. Send()” method to server and at server end these data received by “socket-object. Receive()” method. When data successfully received at server end, server saves these bytes in a file using byte data stream.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;For large file, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;“these data read at client -send to server-receive at server end - save received data at server end”&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; these steps are perform repeatedly until client reach at EOF (End Of File). But in this program only small file covered for this no need of looping, for this type of example read my “Send 2GB file using TCP socket programming” article. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Phase 3, Break communication channel and release resources:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; When last slice of byte data saved at server, client and server close the socket object and release all resource like file stream, socket object etc.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;By that way a file transferred from client to server. But there has no way to call a client from server and send file. My example describe how to send file from client to server but can you imagine how opposite done? Yes if you able learn client to server data transfer properly then it is very easy. Try your self first, if failed then try it again and continue at least three times, then you will able to do it. But….but again failed then ask me I will help you about it :-)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; For code url is:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="https://rapidshare.com/files/3633340435/Small_File_Transfer_in_Console.zip"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;https://rapidshare.com/files/3633340435/Small_File_Transfer_in_Console.zip&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Client Code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;[C#]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.IO;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;namespace Client_Socket&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    //FILE TRANSFER USING C#.NET SOCKET PROGRAMMING - CLIENT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    class Program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.WriteLine("That program can transfer small file. I've test up to 850kb file");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                IPAddress[] ipAddress = Dns.GetHostAddresses("localhost");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], 5656);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                string fileName = "Your File Name";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                string filePath = "Your File Path";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                byte[] fileNameByte = Encoding.ASCII.GetBytes(fileName);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                byte[] fileData = File.ReadAllBytes(filePath + fileName);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                byte[] clientData = new byte[4 + fileNameByte.Length + fileData.Length];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                byte[] fileNameLen = BitConverter.GetBytes(fileNameByte.Length);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                fileNameLen.CopyTo(clientData, 0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                fileNameByte.CopyTo(clientData, 4);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                fileData.CopyTo(clientData, 4 + fileNameByte.Length);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                clientSock.Connect(ipEnd);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                clientSock.Send(clientData);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.WriteLine("File:{0} has been sent.", fileName);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                clientSock.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            catch (Exception ex)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.WriteLine("File Sending fail." + ex.Message);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;[Visual Basic]&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Collections.Generic&lt;br /&gt;Imports System.Text&lt;br /&gt;Imports System.Net&lt;br /&gt;Imports System.Net.Sockets&lt;br /&gt;Imports System.IO&lt;br /&gt;Namespace Client_Socket&lt;br /&gt;   'FILE TRANSFER USING C#.NET SOCKET  PROGRAMMING- CLIENT&lt;br /&gt;   Class Program&lt;br /&gt;       Private Shared Sub Main(ByVal args As String())&lt;br /&gt;           Try&lt;br /&gt;               Console.WriteLine("That program can transfer small file. I've test up to 850kb file")&lt;br /&gt;               Dim ipAddress As IPAddress() = Dns.GetHostAddresses("localhost")&lt;br /&gt;               Dim ipEnd As New IPEndPoint(ipAddress(0), 5656)&lt;br /&gt;               Dim clientSock As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)&lt;br /&gt;       &lt;br /&gt;       &lt;br /&gt;               Dim fileName As String = "Your File Name"&lt;br /&gt;               Dim filePath As String = "Your File Path"&lt;br /&gt;               Dim fileNameByte As Byte() = Encoding.ASCII.GetBytes(fileName)&lt;br /&gt;       &lt;br /&gt;               Dim fileData As Byte() = File.ReadAllBytes(filePath + fileName)&lt;br /&gt;               Dim clientData As Byte() = New Byte(4 + fileNameByte.Length + (fileData.Length - 1)) {}&lt;br /&gt;               Dim fileNameLen As Byte() = BitConverter.GetBytes(fileNameByte.Length)&lt;br /&gt;       &lt;br /&gt;               fileNameLen.CopyTo(clientData, 0)&lt;br /&gt;               fileNameByte.CopyTo(clientData, 4)&lt;br /&gt;               fileData.CopyTo(clientData, 4 + fileNameByte.Length)&lt;br /&gt;       &lt;br /&gt;               clientSock.Connect(ipEnd)&lt;br /&gt;               clientSock.Send(clientData)&lt;br /&gt;               Console.WriteLine("File:{0} has been sent.", fileName)&lt;br /&gt;               clientSock.Close()&lt;br /&gt;               Console.ReadLine()&lt;br /&gt;           Catch ex As Exception&lt;br /&gt;               Console.WriteLine("File Sending fail." &amp;amp; ex.Message)&lt;br /&gt;           End Try&lt;br /&gt;   &lt;br /&gt;       End Sub&lt;br /&gt;   End Class&lt;br /&gt;End Namespace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Server Code:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;[C#]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.IO;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;namespace beginSocketServer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    //FILE TRANSFER USING C#.NET SOCKET  PROGRAMMING - SERVER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    class Program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.WriteLine("That program can transfer small file. I've test up to 850kb file");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5656);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream,     ProtocolType.IP);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                sock.Bind(ipEnd);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                sock.Listen(100);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Socket clientSock = sock.Accept();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                byte[] clientData = new byte[1024 * 5000];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                string receivedPath = "e:/";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                int receivedBytesLen = clientSock.Receive(clientData);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                int fileNameLen = BitConverter.ToInt32(clientData, 0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                string fileName = Encoding.ASCII.GetString(clientData, 4, fileNameLen);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.WriteLine("Client:{0} connected &amp;amp; File {1} started received.", clientSock.RemoteEndPoint, fileName);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                BinaryWriter bWrite = new BinaryWriter(File.Open(receivedPath + fileName,  FileMode.Append)); ;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                bWrite.Write(clientData, 4 + fileNameLen, receivedBytesLen - 4 - fileNameLen);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.WriteLine("File: {0} received &amp;amp; saved at path: {1}", fileName, receivedPath);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                bWrite.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                clientSock.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            catch (Exception ex)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                Console.WriteLine("File Receiving fail." + ex.Message);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;[Visual Basic]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Collections.Generic&lt;br /&gt;Imports System.Text&lt;br /&gt;Imports System.Net&lt;br /&gt;Imports System.Net.Sockets&lt;br /&gt;Imports System.IO&lt;br /&gt;Namespace beginSocketServer&lt;br /&gt;   'FILE TRANSFER USING C#.NET SOCKET &lt;span class="Apple-style-span" style="font-style: italic; "&gt; PROGRAMMING&lt;/span&gt;- SERVER&lt;br /&gt;   Class Program&lt;br /&gt;       Private Shared Sub Main(ByVal args As String())&lt;br /&gt;           Try&lt;br /&gt;               Console.WriteLine("That program can transfer small file. I've test up to 850kb file")&lt;br /&gt;               Dim ipEnd As New IPEndPoint(IPAddress.Any, 5656)&lt;br /&gt;               Dim sock As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)&lt;br /&gt;               sock.Bind(ipEnd)&lt;br /&gt;               sock.Listen(100)&lt;br /&gt;               Dim clientSock As Socket = sock.Accept()&lt;br /&gt;       &lt;br /&gt;               Dim clientData As Byte() = New Byte(1024  5000 - 1) {}&lt;br /&gt;               Dim receivedPath As String = "e:/"&lt;br /&gt;       &lt;br /&gt;               Dim receivedBytesLen As Integer = clientSock.Receive(clientData)&lt;br /&gt;       &lt;br /&gt;               Dim fileNameLen As Integer = BitConverter.ToInt32(clientData, 0)&lt;br /&gt;               Dim fileName As String = Encoding.ASCII.GetString(clientData, 4, fileNameLen)&lt;br /&gt;       &lt;br /&gt;               Console.WriteLine("Client:{0} connected &amp;amp; File {1} started received.", clientSock.RemoteEndPoint, fileName)&lt;br /&gt;       &lt;br /&gt;               Dim bWrite As New BinaryWriter(File.Open(receivedPath + fileName, FileMode.Append))&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;               bWrite.Write(clientData, 4 + fileNameLen, receivedBytesLen - 4 - fileNameLen)&lt;br /&gt;       &lt;br /&gt;               Console.WriteLine("File: {0} received &amp;amp; saved at path: {1}", fileName, receivedPath)&lt;br /&gt;       &lt;br /&gt;               bWrite.Close()&lt;br /&gt;               clientSock.Close()&lt;br /&gt;               Console.ReadLine()&lt;br /&gt;           Catch ex As Exception&lt;br /&gt;               Console.WriteLine("File Receiving fail." &amp;amp; ex.Message)&lt;br /&gt;           End Try&lt;br /&gt;       End Sub&lt;br /&gt;   End Class&lt;br /&gt;End Namespace&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-65318141836180200?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/65318141836180200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=65318141836180200' title='33 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/65318141836180200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/65318141836180200'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/11/file-transfer-using-c-socket.html' title='File Transfer using C# .Net Socket  Programming'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>33</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-2156347714517343654</id><published>2007-11-07T11:58:00.001-08:00</published><updated>2010-02-16T08:06:08.689-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='socket'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='c# socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='Syncronous'/><category scheme='http://www.blogger.com/atom/ns#' term='Network Stram'/><title type='text'>Synchronous Server Socket using Network Stream in C# .Net  Programming</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;Hi frends,I’m back again with two sample socket application. These two project also for beginner’s in C#.Net Socket world. One of these is Server socket application and another is Client socket application. Both application has used NetworkStream class to send and receive data between Client and Server. These two has written based on previous articles on Socket programming and these are very easy to learn. I hope any one can understood these very easyly. If you feel any problem then please reply me via comment I will response these.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;Here Server socket with Network stream in C# has written and in different blog post contains the client application. Both two has written based on synchronous communication mode, but in future I will show you, how you can built asynchronous socket application by these synchronous socket. So lets starts code.&lt;span style="color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;namespace NetworkStreamSocketServer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    class Program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5656);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sock.Bind(ipEnd);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sock.Listen(100);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket clientSock = sock.Accept();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] clientData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //With other Socket server application difference only here.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Create an Network stream object and wait for client's request&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            NetworkStream ns = new NetworkStream(clientSock);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Wait for new connection and to receive data from client&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            int receivedBytesLen = ns.Read(clientData, 0, clientData.Length);            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            string clientDataInString = Encoding.ASCII.GetString(clientData, 0, receivedBytesLen);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Flush();//Free Stream buffer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine("Received Data {0}", clientDataInString);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            string clientStr = "Client Data Received";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] sendData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sendData = Encoding.ASCII.GetBytes(clientStr);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Now network stream object send some data to client&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Write(sendData, 0, sendData.Length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Release all resources &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientSock.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-2156347714517343654?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/2156347714517343654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=2156347714517343654' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/2156347714517343654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/2156347714517343654'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/11/synchronous-server-socket-using-network_07.html' title='Synchronous Server Socket using Network Stream in C# .Net  Programming'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-5007016937376183850</id><published>2007-11-07T11:58:00.000-08:00</published><updated>2010-02-16T08:06:35.646-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='TCP Socket'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='Network Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Network Stram'/><category scheme='http://www.blogger.com/atom/ns#' term='Syncronous socket'/><title type='text'>Synchronous Server Socket using Network Stream in C# .Net  Programming</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=""&gt;Hi frends,I’m back again with two sample socket application. These two project also for beginner’s in C#.Net Socket world. One of these is Server socket application and another is Client socket application. Both application has used NetworkStream class to send and receive data between Client and Server. These two has written based on previous articles on Socket programming and these are very easy to learn. I hope any one can understood these very easyly. If you feel any problem then please reply me via comment I will response these.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;Here Server socket with Network stream in C# has written and in different blog post contains the client application. Both two has written based on synchronous communication mode, but in future I will show you, how you can built asynchronous socket application by these synchronous socket. So lets starts code.&lt;span style="color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;namespace NetworkStreamSocketServer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    class Program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5656);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sock.Bind(ipEnd);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sock.Listen(100);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket clientSock = sock.Accept();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] clientData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //With other Socket server application difference only here.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Create an Network stream object and wait for client's request&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            NetworkStream ns = new NetworkStream(clientSock);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Wait for new connection and to receive data from client&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            int receivedBytesLen = ns.Read(clientData, 0, clientData.Length);            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            string clientDataInString = Encoding.ASCII.GetString(clientData, 0, receivedBytesLen);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Flush();//Free Stream buffer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine("Received Data {0}", clientDataInString);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            string clientStr = "Client Data Received";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] sendData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sendData = Encoding.ASCII.GetBytes(clientStr);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Now network stream object send some data to client&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Write(sendData, 0, sendData.Length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Release all resources &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientSock.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-5007016937376183850?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/5007016937376183850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=5007016937376183850' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/5007016937376183850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/5007016937376183850'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/11/synchronous-server-socket-using-network.html' title='Synchronous Server Socket using Network Stream in C# .Net  Programming'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-7522532864160767466</id><published>2007-11-01T22:19:00.000-07:00</published><updated>2010-02-16T08:07:04.631-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='server socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c# socket'/><category scheme='http://www.blogger.com/atom/ns#' term='Ayncronous socket'/><category scheme='http://www.blogger.com/atom/ns#' term='Syncronous socket'/><category scheme='http://www.blogger.com/atom/ns#' term='Client Socket'/><title type='text'>Synchronous Client Socket using Network Stream in C# .Net  Programming</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;Hi frends,I’m back again with two sample socket application. These two project also for beginner’s in C#.Net Socket world. One of these is Server socket application and another is Client socket application. Both application has used NetworkStream class to send and receive data between Client and Server. These two has written based on previous articles on Socket programming and these are very easy to learn. I hope any one can understood these very easyly. If you feel any problem then please reply me via comment I will response these.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style=""&gt;      &lt;/span&gt;Here Client socket with Network stream in C# .Net has written and in different blog post contains the Server application. Both two has written based on synchronous communication mode, but in future I will show you, how you can built asynchronous socket application by these synchronous socket. So lets starts code.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-style: italic;"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;namespace NetworkStreamSocketClient&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    class Program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPAddress[] ipAddress = Dns.GetHostAddresses("localhost");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], 5656);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientSocket.Connect(ipEnd);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            string strData = "Message from client end.";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] clientData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientData = Encoding.ASCII.GetBytes(strData);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Difference is here only, use of Network Stream class.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Just create a object of Network Stream class with your estublished socket, then use it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            NetworkStream ns = new NetworkStream(clientSocket);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Write function writes all bytes to send receiver end of connected socket.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Write(clientData, 0, clientData.Length);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Flush() use to clear all data from Stream object to future use.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Flush();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] serverData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Now stream object wait for receive response from other end.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            int length = ns.Read(serverData, 0, serverData.Length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine(Encoding.ASCII.GetString(serverData, 0, length));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            //Communication completed, now free all resource&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            ns.Close(); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientSocket.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;"  &gt;&lt;span style="color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-7522532864160767466?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/7522532864160767466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=7522532864160767466' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/7522532864160767466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/7522532864160767466'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/11/synchronous-socket-using-network-stream.html' title='Synchronous Client Socket using Network Stream in C# .Net  Programming'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-1929932075373204580</id><published>2007-10-30T06:02:00.000-07:00</published><updated>2009-06-11T05:53:11.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socket application'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='c# socket'/><category scheme='http://www.blogger.com/atom/ns#' term='Ayncronous socket'/><title type='text'>Asynchronous Socket Client for Beginner</title><content type='html'>&lt;span style="font-style: italic;"&gt;&lt;/span&gt;It's a sample client socket code that code based on MSDN sample code.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Threading;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;// State object for receiving data from remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;public class StateObject&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    // Client socket.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public Socket workSocket = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    // Size of receive buffer.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public const int BufferSize = 1024;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    // Receive buffer.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public byte[] buffer = new byte[BufferSize];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    // Received data string.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public StringBuilder sb = new StringBuilder();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;public class AsynchronousClient&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    // The port number for the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private const int port = 5656;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    // ManualResetEvent instances signal completion.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static ManualResetEvent connectDone =new ManualResetEvent(false);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static ManualResetEvent sendDone =new ManualResetEvent(false);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static ManualResetEvent receiveDone =new ManualResetEvent(false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    // The response from the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static String response = String.Empty;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static void StartClient()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        // Connect to a remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Establish the remote endpoint for the socket.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPHostEntry ipHostInfo = Dns.Resolve("localhost");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPAddress ipAddress = ipHostInfo.AddressList[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPEndPoint ep = new IPEndPoint(ipAddress, port);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Create a TCP/IP socket.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket client = new Socket(AddressFamily.InterNetwork,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                SocketType.Stream, ProtocolType.Tcp);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Connect to the remote endpoint.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            client.BeginConnect(ep,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                new AsyncCallback(ConnectCallback), client);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            connectDone.WaitOne();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Send test data to the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Send(client, "Data Send to local server.");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sendDone.WaitOne();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Receive the response from the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Receive(client);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            receiveDone.WaitOne();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Write the response to the console.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine("Response received : {0}", response);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Release the socket.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            client.Shutdown(SocketShutdown.Both);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            client.Close();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        catch (Exception e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine(e.ToString());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static void ConnectCallback(IAsyncResult ar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Retrieve the socket from the state object.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket client = (Socket)ar.AsyncState;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Complete the connection.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            client.EndConnect(ar);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine("Socket connected to {0}",client.RemoteEndPoint.ToString());&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Signal that the connection has been made.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            connectDone.Set();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        catch (Exception e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine(e.ToString());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static void Receive(Socket client)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Create the state object.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            StateObject state = new StateObject();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            state.workSocket = client;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Begin receiving the data from the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                new AsyncCallback(ReceiveCallback), state);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        catch (Exception e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine(e.ToString());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static void ReceiveCallback(IAsyncResult ar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Retrieve the state object and the client socket &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // from the asynchronous state object.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            StateObject state = (StateObject)ar.AsyncState;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket client = state.workSocket;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Read data from the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            int bytesRead = client.EndReceive(ar);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            if (bytesRead &gt; 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                // There might be more data, so store the data received so far.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                // Get the rest of the data.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,new AsyncCallback(ReceiveCallback), state);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                // All the data has arrived; put it in response.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                if (state.sb.Length &gt; 1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                    response = state.sb.ToString();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                // Signal that all bytes have been received.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                receiveDone.Set();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        catch (Exception e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine(e.ToString());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static void Send(Socket client, String data)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        // Convert the string data to byte data using ASCII encoding.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        byte[] byteData = Encoding.ASCII.GetBytes(data);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        // Begin sending the data to the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        client.BeginSend(byteData, 0, byteData.Length, 0,new AsyncCallback(SendCallback), client);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    private static void SendCallback(IAsyncResult ar)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Retrieve the socket from the state object.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket client = (Socket)ar.AsyncState;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Complete sending the data to the remote device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            int bytesSent = client.EndSend(ar);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine("Sent {0} bytes to server.", bytesSent);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            // Signal that all bytes have been sent.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            sendDone.Set();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        catch (Exception e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine(e.ToString());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    public static int Main(String[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        StartClient();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-1929932075373204580?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/1929932075373204580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=1929932075373204580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/1929932075373204580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/1929932075373204580'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/10/asynchronous-socket-client-for-beginner.html' title='Asynchronous Socket Client for Beginner'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-3013392495422254486</id><published>2007-10-16T07:06:00.000-07:00</published><updated>2010-02-16T08:07:53.599-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socket application'/><category scheme='http://www.blogger.com/atom/ns#' term='Asynchronous'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='socket'/><category scheme='http://www.blogger.com/atom/ns#' term='server socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c# socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='Client Socket'/><title type='text'>Asynchronous Socket Server  Programming for  Beginner</title><content type='html'>It's a sample Server socket code that code based on MSDN sample code.&lt;br /&gt;&lt;br /&gt;That code works asynchronously for send/receive data between client and server. By that code any one can transfer data easily as when he want. Here some string data has been transferred. Before sending string data just it has been converted to byte array and then it has transferred client to server. Now I’m writing code to transfer string data between client and server, but within short time I will write how can transfer huge file data by asynchronous socket.&lt;br /&gt;Now may some one think why we should use Asynchronous socket except synchronous socket? Because using asynchronous socket we can transfer data in different thread and data can transfer more smoothly. If any one try to send large data without any multi-threading model then he will see that when data is transferring then his program looks line ‘crashed’. However, lets describing some portion about that code.&lt;br /&gt;&lt;br /&gt;For use socket asynchronously Microsoft has provide very helpful technology in .Net. We just use some inbuilt function with ‘Begin-End’ scenario with three word ‘Accept, Send &amp;amp; Receive’. This functions are:&lt;br /&gt;&lt;br /&gt;BeginAccept() - EndAccept()&lt;br /&gt;BeginReceive() - EndReceive()&lt;br /&gt;BeginSend() - EndSend()&lt;br /&gt;&lt;br /&gt;These functions when invoke then it create &amp;amp; starts internal thread and starts working with a separate thread and continue working. So it don’t hamper main thread. Also inter-thread communication done by ‘ManualResetEvent’. ManualResetEvent object can handle it with it’s three functions :&lt;br /&gt;Reset()&lt;br /&gt;Set ()&lt;br /&gt;WaitOne().&lt;br /&gt;&lt;br /&gt;Also here has used ‘StringBuilder’ for string operation in spite of simple ‘string’ class. Both class does same work, but ‘StringBuilder’ is very fast than ‘string’, but you can use ‘string’ also.&lt;br /&gt;&lt;br /&gt;However, the exact codes are as given below, at then end of that code I’m writing my personal some experience. Let’s see:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ok&gt;&lt;fail&gt;&lt;ok&gt;&lt;em&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Net.Sockets;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Threading;&lt;br /&gt;&lt;br /&gt;// State object for reading client data asynchronously&lt;br /&gt;public class StateObject&lt;br /&gt;{&lt;br /&gt;// Client socket.&lt;br /&gt;public Socket workSocket = null;&lt;br /&gt;// Size of receive buffer.&lt;br /&gt;public const int BufferSize = 1024;&lt;br /&gt;// Receive buffer.&lt;br /&gt;public byte[] buffer = new byte[BufferSize];&lt;br /&gt;// Received data string.&lt;br /&gt;public StringBuilder sb = new StringBuilder();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class AsynchronousSocketListener&lt;br /&gt;{&lt;br /&gt;// Thread signal.&lt;br /&gt;public static ManualResetEvent allDone = new ManualResetEvent(false);&lt;br /&gt;&lt;br /&gt;public AsynchronousSocketListener()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void StartListening()&lt;br /&gt;{&lt;br /&gt;// Temp storage for incoming data.&lt;br /&gt;byte[] recvDataBytes = new Byte[1024];&lt;br /&gt;&lt;br /&gt;// Make endpoint for the socket.&lt;br /&gt;//IPAddress serverAdd = Dns.Resolve("localhost"); - That line was wrong &lt;/em&gt;&lt;br /&gt;&lt;em&gt;//'baaelSiljan' has noticed it and then I've modified that line, correct line will be as:&lt;br /&gt;IPHostEntry ipHost = Dns.Resolve("localhost");&lt;br /&gt;IPAddress serverAdd = ipHost.AddressList[0];&lt;br /&gt;&lt;br /&gt;IPEndPoint ep = new IPEndPoint(serverAdd, 5656);&lt;br /&gt;&lt;br /&gt;// Create a TCP/IP socket for listner.&lt;br /&gt;Socket listenerSock = new Socket(AddressFamily.InterNetwork,&lt;br /&gt;SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;&lt;br /&gt;// Bind the socket to the endpoint and wait for listen for incoming connections.&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;listenerSock.Bind(ep);&lt;br /&gt;listenerSock.Listen(10);&lt;br /&gt;&lt;br /&gt;while (true)&lt;br /&gt;{&lt;br /&gt;// Set the event to nonsignaled state.&lt;br /&gt;allDone.Reset();&lt;br /&gt;&lt;br /&gt;// Start an asynchronous socket to listen for connections.&lt;br /&gt;Console.WriteLine("Waiting for Client...");&lt;br /&gt;listenerSock.BeginAccept(&lt;br /&gt;new AsyncCallback(AcceptCallback),&lt;br /&gt;listenerSock);&lt;br /&gt;&lt;br /&gt;// Wait until a connection is made before continuing.&lt;br /&gt;allDone.WaitOne();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;catch (Exception e)&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(e.ToString());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Console.WriteLine("\nPress ENTER to continue...");&lt;br /&gt;Console.Read();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void AcceptCallback(IAsyncResult ar)&lt;br /&gt;{&lt;br /&gt;// Signal the main thread to continue.&lt;br /&gt;allDone.Set();&lt;br /&gt;&lt;br /&gt;// Get the socket that handles the client request.&lt;br /&gt;Socket listener = (Socket)ar.AsyncState;&lt;br /&gt;Socket handler = listener.EndAccept(ar);&lt;br /&gt;&lt;br /&gt;// Create the state object.&lt;br /&gt;StateObject state = new StateObject();&lt;br /&gt;state.workSocket = handler;&lt;br /&gt;handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,&lt;br /&gt;new AsyncCallback(ReadCallback), state);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void ReadCallback(IAsyncResult ar)&lt;br /&gt;{&lt;br /&gt;String content = String.Empty;&lt;br /&gt;&lt;br /&gt;// Retrieve the state object and the handler socket&lt;br /&gt;// from the asynchronous state object.&lt;br /&gt;StateObject state = (StateObject)ar.AsyncState;&lt;br /&gt;Socket handler = state.workSocket;&lt;br /&gt;&lt;br /&gt;// Read data from the client socket.&lt;br /&gt;int bytesRead = handler.EndReceive(ar);&lt;br /&gt;&lt;br /&gt;if (bytesRead &gt; 0)&lt;br /&gt;{&lt;br /&gt;// There might be more data, so store the data received so far.&lt;br /&gt;state.sb.Append(Encoding.ASCII.GetString(&lt;br /&gt;state.buffer, 0, bytesRead));&lt;br /&gt;&lt;br /&gt;// Check for end-of-file tag. If it is not there, read&lt;br /&gt;// more data.&lt;br /&gt;content = state.sb.ToString();&lt;br /&gt;if (content.IndexOf("&lt;eof&gt;") &gt; -1)&lt;br /&gt;{&lt;br /&gt;// All the data has been read from the&lt;br /&gt;// client. Display it on the console.&lt;br /&gt;Console.WriteLine("Read {0} bytes from socket. \n Data : {1}",&lt;br /&gt;content.Length, content);&lt;br /&gt;// Echo the data back to the client.&lt;br /&gt;Send(handler, content);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;// Not all data received. Get more.&lt;br /&gt;handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,&lt;br /&gt;new AsyncCallback(ReadCallback), state);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static void Send(Socket handler, String data)&lt;br /&gt;{&lt;br /&gt;// Convert the string data to byte data using ASCII encoding.&lt;br /&gt;byte[] byteData = Encoding.ASCII.GetBytes(data);&lt;br /&gt;&lt;br /&gt;// Begin sending the data to the remote device.&lt;br /&gt;handler.BeginSend(byteData, 0, byteData.Length, 0,&lt;br /&gt;new AsyncCallback(SendCallback), handler);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static void SendCallback(IAsyncResult ar)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;// Retrieve the socket from the state object.&lt;br /&gt;Socket handler = (Socket)ar.AsyncState;&lt;br /&gt;&lt;br /&gt;// Complete sending the data to the remote device.&lt;br /&gt;int bytesSent = handler.EndSend(ar);&lt;br /&gt;Console.WriteLine("Sent {0} bytes to client.", bytesSent);&lt;br /&gt;&lt;br /&gt;handler.Shutdown(SocketShutdown.Both);&lt;br /&gt;handler.Close();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;catch (Exception e)&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(e.ToString());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public static int Main(String[] args)&lt;br /&gt;{&lt;br /&gt;StartListening();&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/eof&gt;How that code was?&lt;br /&gt;Fine!&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;But always keep in mind here system is using default thread pool which by default handle maximum 25 thread, which may gives problem in large application, but for small application it’s fine. Also it’s using internal multi-threading technology which is comparatively slower than raw threading program. However let’s carry on.&lt;br /&gt;&lt;br /&gt;&lt;/ok&gt;&lt;/fail&gt;&lt;/ok&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-3013392495422254486?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/3013392495422254486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=3013392495422254486' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3013392495422254486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3013392495422254486'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/10/asynchronous-socket-for-beginner.html' title='Asynchronous Socket Server  Programming for  Beginner'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-991990674610915896</id><published>2007-09-29T04:42:00.001-07:00</published><updated>2010-02-16T08:08:20.906-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='raw socket'/><category scheme='http://www.blogger.com/atom/ns#' term='socket application'/><category scheme='http://www.blogger.com/atom/ns#' term='Beginner socket'/><category scheme='http://www.blogger.com/atom/ns#' term='TCP Socket'/><category scheme='http://www.blogger.com/atom/ns#' term='socket programming'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='Client Socket'/><title type='text'>Client Socket  Programming using C#.Net for Beginner</title><content type='html'>Now starts  for Client part of socket   application. Now I will show a simple client socket with an example:&lt;br /&gt;  You have to follow just few steps these are:&lt;br /&gt;  I.   Create a  Ip address object with Server Ip using Dns.&lt;br /&gt;     IPAddress []ipAddress= Dns.GetHostAddresses("localhost");&lt;br /&gt;&lt;br /&gt; II.  Again built an IPEndPoint with that IPAddress with same port of server.&lt;br /&gt;     IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], 5656);&lt;br /&gt;&lt;br /&gt; III.    Now creates a socket object with  three parameter like code.&lt;br /&gt;     Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream,&lt;br /&gt;     ProtocolType.IP);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; IV. Now create a byte array to send data to server.&lt;br /&gt; V.   Finally send that byte array to server.&lt;br /&gt;        clientSock.Send(clientData);&lt;br /&gt;&lt;br /&gt; VI. To receive data from server just wait socket using Receive function, when some data received by client socket then it fill a byte array and return a interger value received bytes length.&lt;br /&gt;     int len = clientSock.Receive(serverData);&lt;br /&gt;&lt;br /&gt; VII. Now close the client socket.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The complete client code is giving below:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;namespace Client_Socket&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    class Program&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPAddress []ipAddress= Dns.GetHostAddresses("localhost");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], 5656);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientSock.Connect(ipEnd);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            string strData = "Message from client end.";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] clientData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientData = Encoding.ASCII.GetBytes(strData);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientSock.Send(clientData);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            byte[] serverData = new byte[1024];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            int len = clientSock.Receive(serverData);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.WriteLine(Encoding.ASCII.GetString(serverData,0,len));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            clientSock.Close();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;br /&gt;&lt;a href="http://c-sharpguide.blogspot.com/"&gt;All C# blogs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-991990674610915896?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/991990674610915896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=991990674610915896' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/991990674610915896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/991990674610915896'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/09/abcd.html' title='Client Socket  Programming using C#.Net for Beginner'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4193683792173214666.post-3779556442627349551</id><published>2007-09-19T22:34:00.000-07:00</published><updated>2010-02-16T08:08:54.909-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socket application'/><category scheme='http://www.blogger.com/atom/ns#' term='Beginner socket'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='socket'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='c# socket'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='Syncronous socket'/><title type='text'>Server Socket  Programming for beginner using C#.Net</title><content type='html'>For beginner socket is quite complicated. But it's not very hard to learn. Basically I've learned it within few hours. So I believe it can learn any body. However let's start.&lt;br /&gt;&lt;br /&gt;Socket programming have two part&lt;br /&gt;I. Server&lt;br /&gt;II. Client.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I. Server: &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;To start server need to follow some steps, these are:&lt;br /&gt;i. First create a IPEndPoint&lt;br /&gt;[e.g. IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, port);]&lt;br /&gt;&lt;br /&gt;ii. Create a socket object.&lt;br /&gt;[Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);]&lt;br /&gt;&lt;br /&gt;iii. Bind socket with IPEndPoint.&lt;br /&gt;[sock.Bind(ipEnd);]&lt;br /&gt;&lt;br /&gt;iv. Place socket in Listen mode (to accept call of client)&lt;br /&gt;[sock.Listen(maxClientReceived);]&lt;br /&gt;&lt;br /&gt;v. When any call comes from client Accept that call.&lt;br /&gt;[Socket clientSock = sock.Accept();]&lt;br /&gt;At that position Accept() return a new socket to continue communication with called client. By that socket Client-Server communication continue.&lt;br /&gt;&lt;br /&gt;To send some data (in byte array form) to client from server just write&lt;br /&gt;clientSock.send(byteArrayData);&lt;br /&gt;&lt;br /&gt;To receive client data just write&lt;br /&gt;int receivedLen= clientSock.Receive(clientData);&lt;br /&gt;Receive() function reads data in byte array form from client socket and writes to 'clientData' array, and return integer value how much bytes has received.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I'm giving complete code of a simple server socket below:- &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Net.Sockets;&lt;br /&gt;namespace beginSocketServer&lt;br /&gt;{&lt;br /&gt;class Program&lt;br /&gt;{&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5656);&lt;br /&gt;Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);&lt;br /&gt;sock.Bind(ipEnd);&lt;br /&gt;sock.Listen(100);&lt;br /&gt;Socket clientSock = sock.Accept();&lt;br /&gt;byte[] clientData = new byte[1024];&lt;br /&gt;int receivedBytesLen = clientSock.Receive(clientData);&lt;br /&gt;string clientDataInString = Encoding.ASCII.GetString(clientData, 0, receivedBytesLen);&lt;br /&gt;Console.WriteLine("Received Data {0}", clientDataInString);&lt;br /&gt;string clientStr = "Client Data Received";&lt;br /&gt;byte[] sendData = new byte[1024];&lt;br /&gt;sendData= Encoding.ASCII.GetBytes(clientStr);&lt;br /&gt;clientSock.Send(sendData);&lt;br /&gt;clientSock.Close();&lt;br /&gt;Console.ReadLine();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;To run that server code you don't need to write client code just open a webbrowser and write &lt;/strong&gt;(I've use Mozilla Firefox 2.0.0.7) :&lt;br /&gt;&lt;a href="http://localhost:5656/"&gt;http://localhost:5656/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Server console output was: &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Received Data GET / HTTP/1.1Host: localhost:5656User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,&lt;br /&gt;*/*;q=0.5Accept-Language: en-us,en;q=0.5Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-alive&lt;br /&gt;&lt;br /&gt;&lt;em&gt;And in web browser output was:&lt;br /&gt;&lt;/em&gt;Client Data Received.&lt;br /&gt;&lt;br /&gt;Ok, Simple server socket application has done. Next will give simple client socket application for beginner.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sumanbiswas.xm.com/"&gt;see more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4193683792173214666-3779556442627349551?l=socketprogramming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://socketprogramming.blogspot.com/feeds/3779556442627349551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4193683792173214666&amp;postID=3779556442627349551' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3779556442627349551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4193683792173214666/posts/default/3779556442627349551'/><link rel='alternate' type='text/html' href='http://socketprogramming.blogspot.com/2007/09/socket-for-beginner.html' title='Server Socket  Programming for beginner using C#.Net'/><author><name>Suman Biswas</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://bp0.blogger.com/_hrre9HnkHlU/SElk5gZvEQI/AAAAAAAAACk/8lg9xnjxdRk/S220/suman.JPG'/></author><thr:total>19</thr:total></entry></feed>
