最近要用delphi7做一个网络软件的客户端,我是要统计客户端的用户输入的数据,并将其结果通过HTTP的方式发送到WEB服务器,在服务器端有一个页面是ok.asp,一个URL参数arg,那么当用户输入数据并按下回车时,我要实现在后台同时发送这个数据到ok.asp页面进行处理。我的实现的代码是:
idhttp1.get('http://www.xx.com/ok.asp?arg=' + self.Edit1.Text),当运行的时候第一次没有问题,第二次没有问题,但是如果隔几分钟在发送的时候,就会报
Socket Error #10054
Connection reset by peer
然后程序就中止运行,郁闷ing..............
所以请问哪位大虾知道这是怎么回事吗,我在网上看见说服务器阻塞了idhttp的端口,我就怎么也没想明白,因为idhttp用的是80端口,怎么会被阻塞呢?或者还有什么别的方法没有啊,只要能实现这样一个功能就行(当然不能通过WebBrowser控件),希望能给出代码,不甚感激。

解决方案 »

  1.   

    介意你动态创建idhttp组件,使用完成后将其关闭并释放。
      

  2.   

    偶也这样想过,不过总感觉这样实现起来不是很理想,应该有更适合的办法吧。另外我在网上看见大多都用idhttp.post而不是get方法去做,不知道这样实现起来是不是一样会报10054错误。网上说得更多的是直接用winsocket编写,这个对我有点难度,哪位知道怎么实现的,还请不啬赐教。
      

  3.   

    Get是下载文件用的.而其参数URL是要为一个可下载的路径.如:http://www.xxx.com/xxx.exe
    而http://www.xx.com/ok.asp?arg=123则是读数据库中arg=123这条记录.然后返回下载路径.
    是的吧.但Get不会解译.你在用FlashGet下载文件时请注意看下.经常有个重定向.
    重定向的就是其下载地址.先用Post.之后会返回一个下载地址.这个再用Get
      

  4.   

    觉得三楼 yrb()的方法应该可以。
    或者每次点击完以后将IDHTTP disconnect掉
      

  5.   

    介意你动态创建idhttp组件,使用完成后将其关闭并释放。
    ---------------------------------------------------
    对,而且最好放到线程里面去不会阻塞界面。
      

  6.   

    为什么我用idhttp组件之后把下载工作放到线程中执行了还是会造成阻塞界面下载的同时界面相应其他事件不够迅速总要停顿