我是在类模块中使用winsock定义:
Dim WithEvents mySock1 As Winsock点击按钮函数:
  Set mySock1 = New Winsock
    If mySock1.State = 0 Then
        mySock1.Protocol = sckTCPProtocol
        mySock1.RemoteHost = "http://www.xxxx.com"
        mySock1.RemotePort = 80
        mySock1.Connect
    End If
    MsgBox "ccc"connect事件函数:
Private Sub mySock1_Connect()
    MsgBox "ok"
    strCommand = xxxxx
    mySock1.SendData strCommand
End Sub
问题是:点击按钮后,总是弹出ccc,而不是ok
谁知道原因?是因为在类中引用的缘故吗? 先谢了

解决方案 »

  1.   

    不弹出ccc才奇怪 ,你按F8单步看看
      

  2.   

    使用.Connect方法不能一厢情愿,要对方accept之后,才会触发Connect事件。
      

  3.   

    我以为会在.Connect方法后,程序等待.直到连接成功后,触发Connect事件那么如何才能等待对方accept(不使用Timer),然后触发Connect事件??
      

  4.   

    不是的,你还没明白。
    假如你在客户端代码中发出.connect,服务器会自动触发ConnectionRequest事件,在这个事件中服务器执行accept requestID 操作后,客户端就自动触发Connect事件。所以理论上客户端不需要等待,因为服务器是立即接受请求的,除非你人为的在服务器接受请求前延时10秒,那么客户端就要等待10秒才触发Connect事件。
    推荐你在本机写一个简单的客户端和服务器端程序,亲自连接试验一下,那种大悟彻悟的理解和感觉不是别人能说得清的。
      

  5.   

    好的,帖子是一定会结的是说我程序中RemoteHost指定的服务器没有触发ConnectionRequest事件吗?为什么我的connect事件没有触发? 想知道怎么能弹出"ok"?
      

  6.   

    当你连接到服务器,然后服务器答应你的请求,再返回给你的时间比你的机器执行代码还快时,OK就 可能 会比CCC快一步弹出来了!