Chatting Application Using DotNet






2.91/5 (21 votes)
Jul 5, 2007
1 min read

92544

20067
Chatting Application Using VB.Net (ConCurrent Server)
Download ServerForm.zip - 192.9 KB
Download ClientForm.zip - 196.7 KB
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
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.