Skip to content

Instantly share code, notes, and snippets.

@ryasmi
Last active October 14, 2019 17:31
Show Gist options
  • Save ryasmi/4475422 to your computer and use it in GitHub Desktop.
Save ryasmi/4475422 to your computer and use it in GitHub Desktop.
Lan Chat basics in Visual Basic using the TCP. The code below is based on my YouTube tutorial (http://www.youtube.com/watch?v=Pd8TGRrDDMc&list=PL63C2673281C99172&index=3).
' Tutorial @ http://www.youtube.com/watch?v=Pd8TGRrDDMc&list=PL63C2673281C99172&index=3
Option Explicit On
Imports System.IO
Imports System.Net.Sockets
Public Class Form1
Dim Listener As New TcpListener(8000)
Dim Client As TcpClient
Private Sub _FormClosing() Handles Me.FormClosing
Listener.Stop()
End Sub
Private Sub _Load() Handles MyBase.Load
Timer1.Start()
Listener.Start()
End Sub
Private Sub _Tick() Handles Timer1.Tick
Dim Message As String
Dim nStart As Integer
Dim nLast As Integer
If Listener.Pending = True Then
Message = ""
Client = Listener.AcceptTcpClient()
Dim Reader As New StreamReader(Client.GetStream())
While Reader.Peek > -1
Message &= Convert.ToChar(Reader.Read()).ToString
End While
If Message.Contains("</>") Then
nStart = InStr(Message, "</>") + 4
nLast = InStr(Message, "<\>")
Message = Mid(Message, nStart, nLast - nStart)
End If
Label1.Text = Message
End If
End Sub
End Class
' Tutorial @ http://www.youtube.com/watch?v=Pd8TGRrDDMc&list=PL63C2673281C99172&index=3
Option Explicit On
Imports System.IO
Imports System.Net.Sockets
Public Class Form1
Dim Client As TcpClient
Private Sub btnClick() Handles Button1.Click
Try
Client = New TcpClient("127.0.0.1", 8000)
Dim Writer As New StreamWriter(Client.GetStream())
Writer.Write("</> " & TextBox1.Text & " <\>"
Writer.Flush
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
@Ksardas
Copy link

Ksardas commented May 19, 2013

У вас небольшая ошибочка.
Написано:
Writer.Write("</> " & TextBox1.Text & " </>"
Нужно:
Writer.Write("</> " & TextBox1.Text & " <>")

@ryasmi
Copy link
Author

ryasmi commented Jun 13, 2013

I think you might be right. Thanks.

Я думаю, что вы могли бы быть правильным. Спасибо.
Google Translate (English --> Russian)

@InoeZarista
Copy link

Hi ryan I got little Problem I don't know how to show them in every single text box in receiver thank you. [email protected]

Sender
Option Explicit On
Imports System.IO
Imports System.Net.Sockets

Public Class Form1

Dim Client As TcpClient

Private Sub btnClick() Handles Button1.Click

    Try
        Client = New TcpClient(TextBox1.Text, 8000)
        Dim Writer As New StreamWriter(Client.GetStream())

        Writer.Write("</> " & TextBox2.Text & " <\>")
        Writer.Flush()

        Writer.Write("<!> " & TextBox3.Text & " <@>")
        Writer.Flush()

        Writer.Write("<#> " & TextBox4.Text & " <$>")
        Writer.Flush()

        Writer.Write("<%> " & TextBox5.Text & " <^>")
        Writer.Flush()

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

End Class

receiver
Option Explicit On
Imports System.IO
Imports System.Net.Sockets

Public Class Form1
Dim Listener As New TcpListener(8000)
Dim Client As TcpClient

Private Sub _FormClosing() Handles Me.FormClosing
    Listener.Stop()  
End Sub

Private Sub _Load() Handles MyBase.Load
    Timer1.Start()
    Listener.Start()
End Sub

Private Sub Timer1_Tick() Handles Timer1.Tick
    Dim Message As String
    Dim Message1 As String
    Dim Message2 As String
    Dim Message3 As String
    Dim nStart As Integer
    Dim nLast As Integer


    If Listener.Pending = True Then
        Message = ""
        Client = Listener.AcceptTcpClient()
        Dim Reader As New StreamReader(Client.GetStream())

        While Reader.Peek > -1
            Message &= Convert.ToChar(Reader.Read()).ToString


        End While

        If Message.Contains("</>") Then
            nStart = InStr(Message, "</>") + 4
            nLast = InStr(Message, "<\>")
            Message = Mid(Message, nStart, nLast - nStart)
            RichTextBox1.Text = Message
            TextBox2.Text = Message

        ElseIf Message.Contains("<!>") Then
            nStart = InStr(Message, "<!>") + 4
            nLast = InStr(Message, "<@>")
            Message1 = Mid(Message, nStart, nLast - nStart)
            RichTextBox1.Text = Message
            TextBox3.Text = Message

        ElseIf Message.Contains("<#>") Then
            nStart = InStr(Message, "<#>") + 4
            nLast = InStr(Message, "<$>")
            Message2 = Mid(Message, nStart, nLast - nStart)
            RichTextBox1.Text = Message
            TextBox4.Text = Message

        ElseIf Message.Contains("<%>") Then
            nStart = InStr(Message, "<%>") + 4
            nLast = InStr(Message, "<^>")
            Message3 = Mid(Message, nStart, nLast - nStart)
            RichTextBox1.Text = Message
            TextBox5.Text = Message

        End If
    End If
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    RichTextBox1.Text = ""

End Sub

End Class

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment