⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsserver.vb

📁 网吧系统管理
💻 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 + -