请教CSDN上的高手,我要实现像阿里巴巴那个贸易通里面的这个功能:当点击网页中某按钮,如“给我留言”时,客户端马上接收到此留言信息,像QQ那样有信息提示的,即是WEB页中如何与应用程序通信,WEB服务器中如何侦听某个端口的是否有数据要接收,请高手作答。
分不够再开贴送300分。

解决方案 »

  1.   

    参考一下这个文章:监控网页中元素的事件http://blog.csdn.net/technofantasy/archive/2003/08/29/2964.aspx
      

  2.   

    'wbMain为WebBrowser的名称
    Option Explicit
    Private WithEvents Doc As MSHTML.HTMLDocument ' this will b used to trap the document events
    Private Sub wbMain_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
            Set Doc = wbMain.Document  ' assign the reference to the doc object so that
    End Sub
    Private Sub Form_Load()
        wbMain.Navigate App.Path & "\calender.Htm" '可以是Internet上的地址
    End SubPrivate Sub Form_Resize()
        wbMain.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
    End SubPrivate Function Doc_onclick() As Boolean
            If Doc.activeElement Is Nothing Then
               Exit Function
            Else
                If Doc.activeElement.Id <> "" Then
                   Select Case Doc.activeElement.Id
                          Case "btnClose"   '网页上有个按钮 ,ID为btnClose
                               Unload Me
                   End Select
                End If
            End If
            Doc_onclick = True
    End Function
      

  3.   

    网页要发消息的话 先把消息post给一个asp(假设是asp制作的网站)网页,那个网页有一个application
    变量,这个变量是一个消息缓冲区,一般为一个数组 譬如 :
    arryMsg=application("MESSAGE")
    for i=0 to 200-1 'arryMsg下标为200 即可以放 201条消息
        arryMsg(i)=arryMsg(i+1)'进行移位
    next
    arrrMsg(200)=request.form("MESSAGE")'保存消息
    application("MESSAGE")=arrrMsg '保存到application使数据不会丢失然后你的客户端 每隔一段时间(譬如5秒) 请求另一个获取消息的asp网页
    然后该asp网页把arrrMsg(200)返回给客户端 客户端根据自定义的协议 过滤不是自己的消息 然后显示发给自己的消息这里只是一个例子,算法不是很好,另外 web服务器主动发消息给客户端是不可能的!!!
    首先 实现这个功能有点麻烦 可能要做一个控件
    还有 因为web服务器为了节省资源,发送完消息马上关闭连接,这样web服务器想发消息给你的话首先要连接到你,但是万一你在内网呢 也就是在局域网里 那就很难实现了
      

  4.   

    用vb做的cgi好象实现起来很方便了
      

  5.   

    参看vb 做标准cgi 的方法
     main启动,添加窗体,
    别的就和做exe程序通讯一模一样,记得程序运行完要退出
      

  6.   

    我做了一个whois查询的,有点类似,需要的话你可以看一下
      

  7.   

    <form action="/Expert/reply.asp" onsubmit="return input(this)" method="post"   id=XmlRePly name=XmlRePly>
    <dir align=center>
    <table border="0" width="100%" height="100%" ID="Table1"> 
    <tr><td height="25">
    <input type="hidden" name="Topicid" value="3467823" ID="Hidden1"> 
    <input type="hidden" name="xmlReply" value="aaaaa" ID="Hidden2"> 
    <input type=hidden name=csdnname size=10 value="">
    <input type=hidden name=csdnpassword size=10 value="">
    </td></tr>
    <tr><td valign="top" >
    <textarea cols="90" rows="10" name="ReplyContent" class='content'></textarea>
    <br><input type="submit" value="发出回复" border="0" name="B1"  WIDTH="60" HEIGHT="20" class="formtext">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT name="B2" TYPE="reset" WIDTH="60" HEIGHT="20" class="formtext" value="重  写"><br>
    &nbsp;<font color="#FF6633">在这里发贴,表示您接受了CSDN社区的 <A HREF="http://community.csdn.net/expert/ltzz.shtm" target="_blank">用户行为准则</A>。<BR>&nbsp;请您对您的言行负责,并遵守中华人民共和国有关法律、法规,尊重网上道德。
    </font>
    </td></tr></table>
    </dir>
    </form>
      

  8.   

    上面是,本页的“表单” 当然点击“发出回复”控钮后,浏览器就会把,文件框里的数据发送出去。
    当然发送到那里呢?这就是关键》看到第一行:
    <form action="/Expert/reply.asp" onsubmit="return input(this)"
    “action=“ 就是你要收到这些数据的地方。这里是 "/Expert/reply.asp" 
    如果改为:"action="http://131.45.2.10"那么就会发送到ip:=131.45.2.10 端口为:=80 的地方。
              "action="http://131.45.2.10:521"那么就会发送到ip:=131.45.2.10 端口为:=521 的地方。
    你只要在你要做为服务器的机上,运行监听等待就行了。
      

  9.   

    高手呀,谢谢各位,特别是 aijie099(情剩(情.没人要))