VB如何监视一个已经打开的端口?
而不是一连接就提示地址正在使用也就是我们常说的监听功能。
比如要监听某程序想本机器1234端口发送的所有数据,而1234端口已经被某个程序使用了

解决方案 »

  1.   

    我想知道这个问题的答案。VC里是怎么弄的?是用API函数吗?如果是的知,那VB里也应该可以的。
      

  2.   

    通过IP Helper监控当前网络使用情况:
    http://www.applevb.com/sourcecode/NET_Monitor.zip非常完整的连接察看程序,可以察看有哪些程序打开了哪些端口,数据收发流量等等信息:
    http://www.applevb.com/sourcecode/XP%20connector.zip
      

  3.   

    http://www.applevb.com/sourcecode/XP%20connector.zip
    你试验过了没?陈锐的站吧
    早看过了,你因该测试下,代码下来是不能用的,哎~~~~~`````````
    测试环境WIN2000 + 6.0不能给分哦,不过确实要感谢大家的帮助
      

  4.   

    On Error GoTo ww
    Dim duankou As String
    Command4.Enabled = False
    Command5.Enabled = True
    duankou = Text5.Text
    Winsock1.LocalPort = duankou
    Winsock1.Bind Winsock1.LocalPort
    Winsock1.Listen
    Command5.Enabled = True
    ww: MsgBox ("端口被占用,无法进行监听")
    前几天写的,是不是有些帮助呢
      

  5.   

    to vbhero(让上帝哭去吧)
    可以用啊,我在XP和2003下面都运行了,这个是截图:
    http://www.applevb.com/copys.jpg你看是不是符合你的需要。
      

  6.   

    Option ExplicitPrivate Sub Command1_Click()
        On Error Resume Next
        Wsk.Connect Trim(Text1.Text), Trim(Text2.Text)
        Command1.Enabled = False
        Command2.Enabled = False
        Text1.Enabled = False
        Text2.Enabled = False
        Text3.Enabled = False
    End SubPrivate Sub Command2_Click()
        On Error Resume Next
        If Command2.Caption = "侦听" Then
            Command2.Caption = "取消侦听"
            Wsk.LocalPort = Text3.Text
            Wsk.Listen
            Text1.Enabled = False
            Text2.Enabled = False
            Text3.Enabled = False
        Else
            Command2.Caption = "侦听"
            Wsk.Close
            Command1.Enabled = True
            Text1.Enabled = True
            Text2.Enabled = True
            Text3.Enabled = True
        End If
        
        
    End SubPrivate Sub Command3_Click()
        If Len(Text5.Text) > 1 Then
            Wsk.SendData Text5.Text + vbCrLf
            Text5.Text = ""
        End If
    End SubPrivate Sub Command4_Click()
        Wsk.Close
        Text1.Enabled = True
        Text2.Enabled = True
        Text3.Enabled = True
    End SubPrivate Sub Timer1_Timer()
        On Error Resume Next
        Select Case Wsk.State
            Case 0: Form1.Caption = "关闭"
            Case 1: Form1.Caption = "打开"
            Case 3: Form1.Caption = "侦听"
            Case 4: Form1.Caption = "连接挂起"
            Case 5: Form1.Caption = "识别主机"
            Case 6: Form1.Caption = "正在连接"
            Case 7: Form1.Caption = "已连接"
            Case 8: Form1.Caption = "正在关闭"
            Case 9: Form1.Caption = "错误"
        End Select
    End SubPrivate Sub Wsk_Connect()
        MsgBox "Orve To: " + Text1.Text + " As " + Text2.Text
        
    End SubPrivate Sub Wsk_ConnectionRequest(ByVal requestID As Long)
        MsgBox Wsk.RemoteHostIP + "连接本机"End SubPrivate Sub Wsk_DataArrival(ByVal bytesTotal As Long)
        Dim StrData As String
        Wsk.GetData StrData
        Text4.Text = StrData
    End Sub
    =====================
    呵呵,抄的,WSK是Winsock控件。
      

  7.   

    哎呀,如果这个端口被使用了的话,运行后,会出现1004错误,地址正在使用中,WINSOCK不可能啦。5555555555555555555