📄 clsserver.vb
字号:
'****************************************************************************
'人人为我,我为人人
'枕善居汉化收藏整理
'发布日期:2007/07/23
'描 述:网吧计费管理系统客户端/服务器端
'网 站:http://www.Mndsoft.com/ (VB6源码博客)
'网 站:http://www.VbDnet.com/ (VB.NET源码博客,主要基于.NET2005)
'e-mail :Mndsoft@163.com
'e-mail :Mndsoft@126.com
'OICQ :88382850
' 如果您有新的好的代码别忘记给枕善居哦!
'****************************************************************************
Imports System.Net.Sockets
Public Class ClsServer
Dim clients As New Hashtable
Const PORT_NUM As Integer = 10000
Private listener As TcpListener
Public Event StatusChanged()
Public Sub DoListen()
listener = New TcpListener(System.Net.IPAddress.Any, PORT_NUM)
listener.Start()
Do
Dim client As New ClsUser
client.Init(listener.AcceptTcpClient)
AddHandler client.LineRecived, AddressOf OnLineReceived
Loop Until False
End Sub
Private Sub OnLineReceived(ByVal sender As Object, ByVal data As String)
Dim dataArray() As String
dataArray = data.Split(",")
Dim TempDBComputer As New ClsComputer
TempDBComputer.ComputerName = dataArray(1)
Select Case dataArray(0)
Case "CONNECT"
If TempDBComputer.ComputerExist = False Then
MsgBox("未知计算机,计算机名称(MAC地址)为 " & dataArray(1), MsgBoxStyle.Exclamation, "计算机机房管理系统")
Exit Sub
End If
If clients.Contains(dataArray(1)) = False Then
'用计算机名来标识Socket对象
clients.Add(dataArray(1), sender)
Else
clients.Remove(dataArray(1))
clients.Add(dataArray(1), sender)
End If
TempDBComputer.IPAddress = dataArray(2)
TempDBComputer.Connected = "是"
TempDBComputer.UpdateConnect()
RaiseEvent StatusChanged()
Case "LOGIN"
CType(sender, ClsUser).UserName = dataArray(3)
CType(sender, ClsUser).Password = dataArray(4)
Dim Result As Integer = CType(sender, ClsUser).LogConfirm
CType(sender, ClsUser).SendData("LOGIN," & Result.ToString)
TempDBComputer.UserName = dataArray(3)
If Result = 1 Then
TempDBComputer.UpdateUserLogin()
CType(sender, ClsUser).LoginTime = Now
End If
RaiseEvent StatusChanged()
Case "LOGOFF"
TempDBComputer.GetInfo()
TempDBComputer.UserName = dataArray(3)
TempDBComputer.UpdateUserLogoff()
CType(sender, ClsUser).GetInfo()
CType(sender, ClsUser).LogoffTime = Now
CType(sender, ClsUser).Checkout()
CType(sender, ClsUser).AddFeeList(TempDBComputer.RoomNo.ToString & "-" & TempDBComputer.PositionNo.ToString)
CType(sender, ClsUser).SendData("LOGOFF," & CType(sender, ClsUser).Fee.ToString)
RaiseEvent StatusChanged()
End Select
End Sub
Public Sub Broad(ByVal Message As String)
Dim client As ClsUser
Dim entry As DictionaryEntry
For Each entry In clients
client = CType(entry.Value, ClsUser)
client.SendData(Message)
Next
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -