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 Module1Thay vì phải viết code dành cho Client, để test nhanh ta sử dụng telnet để kiểm tra.
'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
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Õ: