关于 VB 的winsock,一点超乎寻常的难题
大家知道,winsock1_DataArrival事件肩负着光荣而艰巨的接收数据的任务。所有反馈信息都在该事件发生的时候进行处理。
而且 winsock1_DataArrival事件 就像一个函数一样,但该事件结束的时候,所有的信息将消失。包括定义的变量。(这句话对吗?)
现在我想让在该事件发生时根据不同情况处理相应的接收内容,该如何处理呢?
1. 使用 HEAD (不是GET) 提交内容的时候,服务器返回头信息,相应的, winsock1_DataArrival 只能接收到头信息。我要做的事情是:
查看该头信息是否为 200 ,如果是,将获得 文件名,即:Content-Location: http://www.xx.comhttp://www.xx.com/blog/attachments/month_0803/y2008313162635.rar ,中的 y2008313162635.rar ,并返回。 获得 Content-Type: application/octet-stream 数据类型,并返回。因为有可能是数据流,也可能是文本流,后文中将以不同方式处理。
如果头信息是 302 ,则获得 Location:后的网址,并返回,目的是为了下一次跳转到新网址继续下载。
2. 用 Get 提交时,获得 相应的内容,根据 上面的提示,假如是文本流,就返回到文本框,假如是数据流,就下载到文件。
请问该如何处理呢?不知道大家看明白没有?就是 winsock1_DataArrival事件 能像函数一样,根据不同的情况,做不同的事情,并且可以返回值。
谢谢大家了。
能帮我写段代码吗?
[解决办法]
Option ExplicitDim s As StringPrivate Sub Form_Load()
[解决办法]
1. 用全局变量
2. 用二进制方式传(还有一种是字符串)
3. 大数据使用分包机制 (比如大于1500字节,或是2000字节)