65.9K
CodeProject 正在变化。 阅读更多。
Home

dotNetMSN 库修复

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.67/5 (2投票s)

2008年8月8日

CPOL

2分钟阅读

viewsIcon

28809

downloadIcon

146

如何修复 dotNetMSN 库以轻松连接到 MSN 服务

引言

dotNetMSN(c) 是一个我之前发现的易于使用的库,我花不到一个小时就熟悉了它。我使用 dotnetmsn.dll 在 MSN(c) 协议连接和与 MSN 协议的交互方面做了许多示例集成。但最近,似乎协议发生了一些变化,我的朋友们在使用该库时问我为什么它不再工作了。

我正要检查新版本,却意识到 dotNetMSN 库的项目条目已经不存在了;我找到了一些其他的 MSN 协议库,但这个轻量级的库引起了我的兴趣,最终我在我的备份中找到了代码来尝试修复...

背景

由于 dotNetMSN 是由 Mansour Behabadi (mansourbeh@yahoo.com) 在 2004 年编写的非常旧的代码,该工具使用的 MSN 协议版本是 MSNP8。我很抱歉我没有时间检查服务器是否忽略 MSNP8 请求或只是违反了它,但问题在于第一条消息,即 VER,发生了一些变化。现在 VER 响应的最后一个字段 CRV0 不再发送回来,所以你只需要修复代码的这部分,不要等待/检查这个 CVR0 即可。

Using the Code

netMSN.vb 的第 207 行,你有以下代码

   Case "VER"
      If .Contains("MSNP8") And .Contains("CVR0") Then
         p_connector.SendCommand(...

只需删除对 CVR0 的检查,一切就都会顺利,并且像以前一样工作...

Case "VER"
      If .Contains("MSNP8") Then
         p_connector.SendCommand(... 

编译项目并将新的 DLL 包含在你的应用程序代码中。

关注点

当然,使用网络协议分析器来尝试理解协议的哪一部分发生了变化,并发现这个最小的响应导致你的简单而完美的代码停止正确工作,是一个很好的练习。逆向工程... 很好的想法,只是需要付诸实践。:)

历史

  • 2008 年 8 月 8 日:初始发布
© . All rights reserved.