搜索
查看: 9900|回复: 14

[登录器]求助!

[复制链接]
发表于 2020-3-4 03:09:57 | 显示全部楼层 |阅读模式 来自 中国–重庆–重庆
刚学C#没多久,用WPF窗口制作了登录器整体UI界面,游戏路径设置写好了,不过服务器状态信息不会写,也没有思路,有会的大佬帮助萌新的吗?
登录器如图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2020-3-4 10:39:51 | 显示全部楼层 来自 中国–内蒙古–呼伦贝尔
WPF 得用VS2010吧 不然XP用户没得了

https://developer.valvesoftware.com/wiki/Server_Queries
你要同时处理47和48协议的两个版本数据包
回复

使用道具 举报

 楼主| 发表于 2020-3-4 11:31:22 | 显示全部楼层 来自 中国–重庆–重庆


我用的VS2017 emmm这网址上的弄不大弄,GG
回复

使用道具 举报

发表于 2020-3-4 11:46:45 | 显示全部楼层 来自 中国–内蒙古–呼伦贝尔
回复

使用道具 举报

 楼主| 发表于 2020-3-4 20:42:51 | 显示全部楼层 来自 中国–重庆–重庆
201724 发表于 2020-3-4 11:46
https://archive.codeplex.com/?p=querymaster

https://github.com/Florian2406/Okolni-Source-Ouery ...

这2个源码我昨天下了, 不过 Okolni那个 我编译了dll,然后 引用在 C# Winform测试,有点问题,能帮我解决下吗,搞不大懂,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

发表于 2020-3-5 04:15:11 | 显示全部楼层 来自 中国–四川–成都
我的未来不是梦 发表于 2020-3-4 20:42
这2个源码我昨天下了, 不过 Okolni那个 我编译了dll,然后 引用在 C# Winform测试,有点问题,能帮我解 ...

兼容旧协议呀
回复

使用道具 举报

 楼主| 发表于 2020-3-5 07:55:58 | 显示全部楼层 来自 中国–重庆–重庆
emmmm。QQ 1031959525,小弟请求大神帮忙 ,万分感谢!
回复

使用道具 举报

发表于 2020-3-5 19:26:56 | 显示全部楼层 来自 中国–四川–成都
我的未来不是梦 发表于 2020-3-5 07:55
emmmm。QQ 1031959525,小弟请求大神帮忙 ,万分感谢!

48 协议是 0x49
47 协议是 0x6D

https://developer.valvesoftware.com/wiki/Server_queries#A2S_INFO

看 Obsolete GoldSource Response
回复

使用道具 举报

发表于 2020-3-5 19:29:44 | 显示全部楼层 来自 中国–四川–成都
我的未来不是梦 发表于 2020-3-5 07:55
emmmm。QQ 1031959525,小弟请求大神帮忙 ,万分感谢!

你服务器是47/48双协议兼容的话,直接这个异常注释掉 return 就好了。
回复

使用道具 举报

发表于 2020-3-5 19:39:44 | 显示全部楼层 来自 中国–四川–成都
我的未来不是梦 发表于 2020-3-4 20:42
这2个源码我昨天下了, 不过 Okolni那个 我编译了dll,然后 引用在 C# Winform测试,有点问题,能帮我解 ...


如果你服务器是47/48兼容的话试试将:

  1. request(Constants.A2S_INFO_REQUEST);
  2. var response = fetchResponse();

  3. var byteReader = response.GetByteReader();
  4. byte header = byteReader.GetByte();

  5. if (header != 0x49)
  6.     throw new ArgumentException("The fetched Response is no A2S_INFO Response.");
复制代码


改成

  1. request(Constants.A2S_INFO_REQUEST);
  2. var response = fetchResponse();

  3. var byteReader = response.GetByteReader();
  4. byte header = byteReader.GetByte();

  5. if (header != 0x49)
  6. {
  7.     response = fetchResponse();
  8.     byteReader = response.GetByteReader();
  9.     header = byteReader.GetByte();
  10.     if (header != 0x49)
  11.         throw new ArgumentException("The fetched Response is no A2S_INFO Response.");
  12. }
复制代码
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表