Advertisement
Guest User

client side

a guest
Jan 30th, 2015
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 3.06 KB | None | 0 0
  1. Imports System.Net.Sockets
  2. Imports System.Threading
  3. Imports System.Net
  4. Imports System.Text
  5. Public Class Form1
  6.     Dim Username As String
  7.     Dim Client As New TcpClient()
  8.     Dim ServerStream As NetworkStream
  9.     Dim IsConnected As Boolean = False
  10.  
  11.     Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  12.         If IsConnected = True Then
  13.             SendDataToServer(Username)
  14.         End If
  15.     End Sub
  16.  
  17.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  18.  
  19.     End Sub
  20.  
  21.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  22.         If String.IsNullOrWhiteSpace(TextBox2.Text) Then
  23.             MessageBox.Show("Please enter a username")
  24.         Else
  25.             Try
  26.                 Client.Connect(IPAddress.Loopback, 8950)
  27.  
  28.                 ServerStream = Client.GetStream
  29.                 Username = TextBox2.Text
  30.  
  31.                 SendDataToServer(Username)
  32.  
  33.                 Label2.Text = ("Connected to server")
  34.                 IsConnected = True
  35.  
  36.                 Dim ServerResponseThread As New Thread(AddressOf ListenForServerResponse)
  37.                 ServerResponseThread.IsBackground = True
  38.                 ServerResponseThread.Start()
  39.             Catch ex As Exception
  40.                 Label2.Text = ("Failed to connect to server")
  41.             End Try
  42.  
  43.         End If
  44.     End Sub
  45.  
  46.     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  47.         SendDataToServer(TextBox1.Text)
  48.     End Sub
  49.  
  50.     Private Sub SendDataToServer(ByVal data As String)
  51.         Dim BytesToSend As Byte() = UTF8Encoding.ASCII.GetBytes(data)
  52.         ServerStream.Write(BytesToSend, 0, BytesToSend.Length)
  53.         ServerStream.Flush()
  54.     End Sub
  55.  
  56.  
  57.     Private Delegate Sub UpdateLabelDel(ByVal data As String)
  58.     Private Sub UpdateLabel(ByVal data As String)
  59.         If InvokeRequired Then
  60.             Invoke(New UpdateLabelDel(AddressOf UpdateLabel), New Object() {data})
  61.         Else
  62.             If data.Contains("says") Then
  63.                 TextBox3.AppendText(data & Environment.NewLine)
  64.             Else
  65.                 Label4.Text = data
  66.             End If
  67.         End If
  68.     End Sub
  69.     Private Sub ListenForServerResponse()
  70.         While True
  71.             Dim BufferSize(1024) As Byte
  72.             Dim DataFromServer As Integer = ServerStream.Read(BufferSize, 0, BufferSize.Length)
  73.             Dim ActualData As String = UTF8Encoding.ASCII.GetString(BufferSize, 0, DataFromServer)
  74.  
  75.             ServerStream.Flush()
  76.             UpdateLabel(ActualData)
  77.         End While
  78.  
  79.     End Sub
  80.  
  81.     Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  82.         If String.IsNullOrWhiteSpace(TextBox4.Text) Then
  83.             MessageBox.Show("Please enter a message to send")
  84.         Else
  85.             SendDataToServer(String.Format("{0} says: {1}", Username, TextBox4.Text))
  86.             TextBox3.AppendText(String.Format("You say: {0}" & Environment.NewLine, TextBox4.Text))
  87.         End If
  88.     End Sub
  89. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement