我的vb在写wisock时,常常在调试时出现卡死的现象,怎么解决? 我的vb在写wisock时,常常在调试时出现卡死的现象,怎么解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是用Winsock的API吗?如果是这样可能你没有用到异步操作吧。比如UDP接收信息时可以用recvfrom来就收信息,但是,如果直接用recvfrom来等待网络信息的到来,VB的整个程序会像卡死一样,通常在VC里这种情况没事,但VB就是连窗口都动不了。如果在VB里要接收网络信息,建议使用异步操作的办法来接收网络数据。其实概念很简单,就是建立一个窗口,然后设置这个窗口可以收到网络事件的系统信息。然后用钩子拦截这个窗口的消息,在钩子函数中判断是否有FD_READ、FD_WRITE、FD_CLOSE...等信息到达。如果信息到达就触发相应的事件就可以了。在事件发生时再使用recvfrom来接收网络数据。Microsoft的Winsock控件就是这样工作的。当它收到FD_READ信息后,就会触发DataArrival事件,程序员也会在DataArrival事件中使用GetData方法取得数据,这个GetData方法其实就是使用了recvfrom来收数据的,只是使用recvfrom的时间不是一开始就使用,而是收到系统的FD_READ信息后再使用,这样一来就不会卡了。 小朋友造句 急!无法安装VB 水晶报表分页 VB打包怎么实现? 在线求FLASH控件的所有属性的用法 VB菜鸟请问如何写个Undo? 送分(50) 请教给位前辈关于全局临时表的问题 如何在A数到B数之间随机取N个不重复数? 小问题,UP有分(前50人)。。。。。。。。。 请大家推荐个GIS控件,能实现下面的功能(用VB做二次开发),也可合作。 vb展开指定目录下的文件夹及文件
比如UDP接收信息时可以用recvfrom来就收信息,但是,如果直接用
recvfrom来等待网络信息的到来,VB的整个程序会像卡死一样,通常
在VC里这种情况没事,但VB就是连窗口都动不了。
如果在VB里要接收网络信息,建议使用异步操作的办法来接收网络数据。
其实概念很简单,就是建立一个窗口,然后设置这个窗口可以收到网络
事件的系统信息。
然后用钩子拦截这个窗口的消息,在钩子函数中判断是否有FD_READ、
FD_WRITE、FD_CLOSE...等信息到达。
如果信息到达就触发相应的事件就可以了。在事件发生时再使用recvfrom
来接收网络数据。
Microsoft的Winsock控件就是这样工作的。当它收到FD_READ信息后,
就会触发DataArrival事件,程序员也会在DataArrival事件中使用
GetData方法取得数据,这个GetData方法其实就是使用了recvfrom来
收数据的,只是使用recvfrom的时间不是一开始就使用,而是收到系统
的FD_READ信息后再使用,这样一来就不会卡了。