XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[其他] 求救,这个问题怎样解决,帮帮我吧

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [其他] 求救,这个问题怎样解决,帮帮我吧  
 
ZHAOY886
小水手
Rank: 1



UID 30751
精华 0
积分 1
帖子 1
阅读权限 10
注册 2007-11-18
状态 离线
求救,这个问题怎样解决,帮帮我吧

未处理的“System.Net.Sockets.SocketException”类型的异常出现在 System.dll 中。listener.Start()我使用VS2005软件调试,说这个程序有问题,各位大侠给看看



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
2007-11-18 20:25#1
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-2 10:05 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver