VB获取指定进程是否有数据接收。

最近在玩一款游戏,长期挂机,但是网络不好老是掉线。我想用VB来写一个程序来监控这个程序是否连接网络,是否在与服务器通讯。不要跟我说用PING这个命令啊,因为游戏服务器是正... 最近在玩一款游戏,长期挂机,但是网络不好老是掉线。我想用VB来写一个程序来监控这个程序是否连接网络,是否在与服务器通讯。不要跟我说用PING这个命令啊,因为游戏服务器是正常的,只是我这边网络差,我只有判断游戏的聊天频道的交易频道是否有信息接收,如果有证明在接收数据,如果聊天窗口没有增加信息就判断游戏掉线。反过来想,网易没有人聊天,岂不是没有数据接收,但是游戏本身可能每隔多久就要向服务器发送一个封包,就会产生流量,哎 搞不懂了,请高手写个详细的代码。谢谢。 展开
 我来答
LzSkyline
2015-01-29 · TA获得超过565个赞
知道小有建树答主
回答量:578
采纳率:0%
帮助的人:302万
展开全部
我只提供思路,具体代码自己去找吧,不是很难的.
首先,有两个方法可以做到你说的行为,当然我也建议一些其他的方法

第一,就按你说的 判断聊天频道交易频道是否有新信息的加入,这个只需要反汇编找到添加聊天内容的call,然后用程序实时监控就行了,类似于断点.每下断一次就重置计时器,如果超过一分钟计时器还没清空,就判断掉线...不过明显是一个不好的方法

第二,还是你说的那样,拦截封包,这个用vb也很好弄,而且你也猜对了,游戏每隔几秒就接受一个封包,如果有新数据到达,此时的周期封包必然与之前的有所不同(比如某一位原来是0 现在变成了1),再发送一条接受指令(一些游戏是这样的,也有的是直接接受新信息,如果没有就是空,如果有就直接添加上去,免得二次接受,但也有不好的地方)

其他方法

找出掉线的真正原因,如果真的是因为自己网络不好,那么如果游戏有断线重连机制,你可能是在重连次数期间也没能顺通网络连接,解决方法是:把重练间隔设置长一些,这个通过反汇编就可以达到目的了,如果是因为挂机时间太长无操作导致的,这个太简单了,隔几秒动一下就行了.

如果就只是想判断是否服务器顺畅的话,可以用winsock模拟tcp/udp连接,或者用inet模拟其他方式的连接,判断返回值,具体的连接ip也可以通过反汇编找出来,这样比注入游戏或者拦截游戏封包更安全

.
追问
服务器ip和端口我知道。请老师给个源码,我对vb是个小白。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式