Click here to Skip to main content
15,891,567 members
Articles / Programming Languages / C#
Article

LAN Chat Using Multicating

Rate me:
Please Sign up or sign in to vote.
2.12/5 (15 votes)
2 Feb 20061 min read 88.4K   9.1K   30   10
An article on LAN chat using multicasting.

Sample Image - LanChat.jpg

Introduction

This is the Simple Project Will demonstrate the use of multicating in Lan Chat.

Background

"IP Multicasting is a bandwidth-conserving technology that reduces traffic by simultaneously delivering a single stream of information to thousands of corporate recipients and homes."CSCO01.

To transmit a single message to a select group of recipients. A simple example of multicasting is sending an e-mail message to a mailing list. Teleconferencing and videoconferencing also use multicasting, but require more robust protocols and networks.

And Multicasting is Controlled By IGMP ( Internet Group Management Protocol).

Using the code

In LanChat there is only one exe, It Consists of one thread to listen in multicast address throught port 1000. To accept in comming Advertisements from any machine in local Lan. Then it maintains the list of available Users.

And the message send to particular client using Another UDP.

It is very simple and usefull for office environment. 

STEPS

  1. Run LanChat in one machine.
  2. Click Advertise Button. Then you will be listed in all other LanChat's.
  3. And then Send messages...  

Listen:

C#
Socket s = new Socket(AddressFamily.InterNetwork, 
               SocketType.Dgram, ProtocolType.Udp);
IPEndPoint ipep = new IPEndPoint(IPAddress.Any,int.Parse(port));
s.Bind(ipep);
IPAddress ip=IPAddress.Parse(mcastGroup);
s.SetSocketOption(SocketOptionLevel.IP, 
        SocketOptionName.AddMembership, 
        new MulticastOption(ip,IPAddress.Any));

SEND Message:

C#
try 
{
  IPAddress GroupAddress = IPAddress.Parse(mAddress);
  int GroupPort = port;
  UdpClient sender = new UdpClient();
  IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);
  byte[] bytes = Encoding.ASCII.GetBytes(message);
  sender.Send(bytes, bytes.Length, groupEP);
  sender.Close();
} 
catch (Exception e) 
{
  MessageBox.Show(e.ToString());
}

Points of Interest

I hope you've enjoyed this little tutorial. In future i will provide you lot more stuffs, And I am expecteding your valuable suggestions.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Software Developer (Senior)
India India
I am a software engineer working in Blr, india.
working in c++, vc++, mfc, c#.Net, COM/ATL.


Comments and Discussions

 
QuestionThrowing Exception Pin
prasad@12348-Mar-13 0:41
prasad@12348-Mar-13 0:41 
hi this is not Running properly.........
QuestionSend File Pin
Brinda Arumugam9-Jun-12 3:55
Brinda Arumugam9-Jun-12 3:55 
Questionhow to change the path , if one path is busy in network Pin
velava6430-Sep-09 20:44
velava6430-Sep-09 20:44 
QuestionHard coded IP? Pin
Roonda5-May-08 15:09
Roonda5-May-08 15:09 
AnswerRe: Hard coded IP? Pin
Andrews Raj16-May-08 23:41
Andrews Raj16-May-08 23:41 
GeneralMultiCat Pin
rajeev829-Oct-07 2:58
rajeev829-Oct-07 2:58 
Generalip multicasting and remote Pin
balazs_hideghety13-Aug-07 6:13
balazs_hideghety13-Aug-07 6:13 
GeneralUDP MESSAGE Pin
Gigi Carlino26-Oct-06 6:13
Gigi Carlino26-Oct-06 6:13 
GeneralRe: UDP MESSAGE Pin
Andrews Raj27-Dec-06 23:57
Andrews Raj27-Dec-06 23:57 
Generalhi andrews Pin
sudharsong24-Apr-06 19:32
sudharsong24-Apr-06 19:32 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.