Click here to Skip to main content
15,881,455 members
Articles / Programming Languages / Visual Basic
Article

Chatting Application Using DotNet

Rate me:
Please Sign up or sign in to vote.
2.91/5 (21 votes)
5 Jul 20071 min read 91.5K   20K   54   12
Chatting Application Using VB.Net (ConCurrent Server)

Download ServerForm.zip - 192.9 KB

Download ClientForm.zip - 196.7 KB

Screenshot - Server_Form1.jpg

Screenshot - Client_after_Conn.jpg

Introduction

Simple Chatting Application Using Socket Programming in VB.Net . This Application use TCP Protocol for Communication. So it is Connection Oriented and reliable Service.........

Background

Mainly Background is Socket Programming in VB.NET which use System.Net.Sockets NameSpace...

Client Socket::: TcpClient Class

Server Socket:: TcpListner Class

Socket is Combination of IP_Address and PortNo.. When we create Socket we have to give IP , Port No and Protocol..

Here DotNet give TcpClient Class which is by default use TCP Protocol.. we have to just provide IP And PortNo..

Same way For TcpListner Class also...............

Using the code

Connect Sub Will send Connection Request to server on given ip

after Connection Receive function is started using thread.. because receive function will go in infinite loop so we have to start receive funtion using Thread.otherwise your mainProcess will goes in infinite loop..

// Public Sub Connect()
        Try
            ipHostinfo = Dns.Resolve(Txtserver.Text)
            ipAdd = ipHostinfo.AddressList(0)
            remoteEP = New IPEndPoint(ipAdd, 11000)
            sender.Connect(remoteEP)
            th = New System.Threading.Thread(AddressOf Receive)
            th.Start()
            i = 1
            MessageBox.Show("Client Connected With Server->" + Txtserver.Text)
        Catch ex As Exception
            MessageBox.Show(ex.Message)

        End Try
        
    End Sub

if we use Multi threading architecture we get 1 main Problem Called: Cross Thread Problem

Solve this problem using Delegate Funtion..Here is Solution

 If Me.List.InvokeRequired Then
            Dim d As New SetDisplay(AddressOf Proccessdata)
            Me.Invoke(d, New Object() {str})
        Else
            Me.List.Items.Add(str)
Public Sub Receive()
        Dim bytes(100000) As Byte
        Dim bytesRec As Integer
   A:      While True
            bytes = New Byte(100000) {}
            bytesRec = sender.Receive(bytes)
            If bytesRec > 0 Then
                Data = Encoding.ASCII.GetString(bytes, 0, bytesRec)
                Exit While
            End If
           End While
        'List.Items.Add(Data)
        'MessageBox.Show(Data)
        Proccessdata(Data)
        ActionData(Data)
        GoTo A
End Sub
        Try
            msg = Encoding.ASCII.GetBytes(Txtmsg.Text)
            Me.sender.Send(msg)
            Txtmsg.Text = ""
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

Points of Interest


Screenshot - Cd_Drive.jpg

This is part of Client Screen.. one intresting point that we can control server Cd Drive From Client Form...

You can Open Notepad , PainBrush ,Calculator On server Machine From Client Screen....

You Can Lock and Release Mouse of Client Pc From the Server....

You Can ShutDown and Restart client Computer From the Server.....

You Can Capture the Photo of Client Screen From the Server......

History

Keep a running update of any changes or improvements you've made here.

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
Web Developer
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
Questionwhat is IP in ClientForm to connect? Pin
Member 150659354-Apr-22 1:48
Member 150659354-Apr-22 1:48 
Questionniccceeeeeeeeee Pin
ZiZoU3276-Feb-14 4:14
ZiZoU3276-Feb-14 4:14 
QuestionMulti User Pin
Peyman Mohammadi13-Feb-13 11:10
Peyman Mohammadi13-Feb-13 11:10 
GeneralMy vote of 1 Pin
BillaBong1-Mar-11 12:05
BillaBong1-Mar-11 12:05 
GeneralMy vote of 4 Pin
Parsagachkar8-Jan-11 21:33
Parsagachkar8-Jan-11 21:33 
QuestionHow should i Get servers IP? Pin
Parsagachkar8-Jan-11 21:31
Parsagachkar8-Jan-11 21:31 
QuestionHi Pin
Member 465630230-Mar-09 2:47
Member 465630230-Mar-09 2:47 
Generalthankes Pin
goldman141511-Jan-09 7:44
goldman141511-Jan-09 7:44 
Questiondoubt for declaration? Pin
gowthamforever24-Dec-08 1:00
gowthamforever24-Dec-08 1:00 
Questionhow to chat the two system,but there is located in different location Pin
Pandian60212-Jul-08 0:00
Pandian60212-Jul-08 0:00 
Questionwow Pin
kasif@kasif.org5-Aug-07 2:14
kasif@kasif.org5-Aug-07 2:14 
GeneralGreat Article! Pin
RyanPotter3-Aug-07 21:47
RyanPotter3-Aug-07 21:47 

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.