[VB.NET] LẬP TRÌNH TCP SERVER/CLIENT CƠ BẢN KẾT HỢP THREAD, STREAM

Chào các bạn tôi tiếp tục tìm hiểu vể Server/Client kết hợp với Thread, Stream để có Ser/Cli tương tác được với nhau. 

Demo: https://drive.google.com/open?id=0BwjnaR7wjSpMZDQ2VU5jb3QzRjQ

Import vào đầu

Imports System.Net
Imports System.Net.Sockets
Imports System.Threading
Imports System.IO

Module Module1
    'Tạo và khai báo biến IP cho SERVER.
    'Dùng IPAddress.Any để dùng các IP trên máy vd: 127.0.0.1 (local), 192.168.xxx.xxx (ip do router cấp).
    Dim ipServer As IPAddress = IPAddress.Any

    'Tạo và khái báo biến cho SERVER để lắng nghe các yêu cầu kết nối từ CLIENT.
    'Cú pháp TcpListener('ip của server đã khai báo ở trên', 'cổng kết nối (PORT) cổng này các bạn tự đặt miễn không đụng với các cổng sẵn có')
    Dim serlistener As TcpListener = New TcpListener(ipServer, 54321)
    'Dùng Try Catch để nếu có lỗi mình có thể kiểm tra báo lỗi gì.
    Dim ThreadTraLoi As Thread
    Sub TraLoi(clisocket As Socket)

        Try

            Console.WriteLine("SERVER DA CHAP NHAN KET NOI VOI CLIENT: " & clisocket.RemoteEndPoint.ToString)
            'Tạo biến stream để gửi nhận giữ liệu giữa server/client
            Dim streamcliser As New NetworkStream(clisocket)
            'Tạo biến serlis để lắng nghe hay học những thông tin từ client gửi tới
            Dim serlis As New StreamReader(streamcliser)
            'Tạo biến serans để trả lời hay gửi dữ liệu cho client
            Dim serans As New StreamWriter(streamcliser)
            serans.AutoFlush = True
            serans.WriteLine("CHUC MUNG BAN DA KET NOI THANH CONG DEN SERVER: " & serlistener.LocalEndpoint.ToString)
            serans.WriteLine("HAY NHAP LAN LUOT CAC SO 1 - 6 DE TEST:")
            serans.WriteLine("NHAP 'STOP' DE KET THUC:")
            While True
                'Biến này kiểu chuỗi chứa các thông tin đọc được trên 1 dòng dười gữi từ client
                Dim clistring As String = serlis.ReadLine
                If clistring = "STOP" Then
                    Exit While
                Else
                    Select Case clistring
                        Case "1"
                            serans.WriteLine("SO MOT")
                        Case "2"
                            serans.WriteLine("SO HAI")
                        Case "3"
                            serans.WriteLine("SO BA")
                        Case "4"
                            serans.WriteLine("SO BON")
                        Case "5"
                            serans.WriteLine("SO NAM")
                        Case "6"
                            serans.WriteLine("SO SAU")
                        Case Else
                            serans.WriteLine("KHONG BIET MOI HOC DEM TU 1 - 6 A")
                    End Select

                End If
            End While
            serans.WriteLine("NGAT KET NOI")
            streamcliser.Close()
        Catch ex As Exception

        End Try


    End Sub
Thay vì phải viết code dành cho Client, để test nhanh ta sử dụng telnet để kiểm tra.

Trước tiên phải mở telnet: Control Panel -->Programs and Features
  

 Check "Telnet Client" Click OK đợi xíu.

 

TEST 

SERVER: 

 

MỞ CMD LÊN GÕ: 

 

 





Viết nhận xét

Các bạn có thể viết lời nhận xét cho bài viết, nhưng cần tuân thủ một số quy tắc sau:

» Các nhận xét/bình luận phải nghiêm túc, không dung tục, không spam.
» Nội dung phải liên quan tới chủ đề bài viết.
» Viết bằng tiếng việt có dấu hoặc tiếng Anh. Nội dung viết không dấu sẽ bị xóa.
» Hãy để lại tên của bạn khi nhận xét/bình luận, để tôi có thể dễ dàng trả lời bạn khi cần.