Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Net.Sockets
- Imports System.Threading
- Imports System.Net
- Imports System.Text
- Public Class Form1
- Dim Username As String
- Dim Client As New TcpClient()
- Dim ServerStream As NetworkStream
- Dim IsConnected As Boolean = False
- Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
- If IsConnected = True Then
- SendDataToServer(Username)
- End If
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- If String.IsNullOrWhiteSpace(TextBox2.Text) Then
- MessageBox.Show("Please enter a username")
- Else
- Try
- Client.Connect(IPAddress.Loopback, 8950)
- ServerStream = Client.GetStream
- Username = TextBox2.Text
- SendDataToServer(Username)
- Label2.Text = ("Connected to server")
- IsConnected = True
- Dim ServerResponseThread As New Thread(AddressOf ListenForServerResponse)
- ServerResponseThread.IsBackground = True
- ServerResponseThread.Start()
- Catch ex As Exception
- Label2.Text = ("Failed to connect to server")
- End Try
- End If
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- SendDataToServer(TextBox1.Text)
- End Sub
- Private Sub SendDataToServer(ByVal data As String)
- Dim BytesToSend As Byte() = UTF8Encoding.ASCII.GetBytes(data)
- ServerStream.Write(BytesToSend, 0, BytesToSend.Length)
- ServerStream.Flush()
- End Sub
- Private Delegate Sub UpdateLabelDel(ByVal data As String)
- Private Sub UpdateLabel(ByVal data As String)
- If InvokeRequired Then
- Invoke(New UpdateLabelDel(AddressOf UpdateLabel), New Object() {data})
- Else
- If data.Contains("says") Then
- TextBox3.AppendText(data & Environment.NewLine)
- Else
- Label4.Text = data
- End If
- End If
- End Sub
- Private Sub ListenForServerResponse()
- While True
- Dim BufferSize(1024) As Byte
- Dim DataFromServer As Integer = ServerStream.Read(BufferSize, 0, BufferSize.Length)
- Dim ActualData As String = UTF8Encoding.ASCII.GetString(BufferSize, 0, DataFromServer)
- ServerStream.Flush()
- UpdateLabel(ActualData)
- End While
- End Sub
- Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
- If String.IsNullOrWhiteSpace(TextBox4.Text) Then
- MessageBox.Show("Please enter a message to send")
- Else
- SendDataToServer(String.Format("{0} says: {1}", Username, TextBox4.Text))
- TextBox3.AppendText(String.Format("You say: {0}" & Environment.NewLine, TextBox4.Text))
- End If
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement