C#ping minecraft
所以发现这个小代码片段可以让你用PHP ping一个Minecraft服务器,但现在我想用C#做这个。
我尝试自己这样做,但由于某种原因它只是不起作用
UdpClient client = new UdpClient(); IPEndPoint ep; try { ep = new IPEndPoint(IPAddress.Parse("-snip-"), -snip-); client.Connect(ep); } catch { Console.WriteLine("Error"); Console.ReadLine(); return; } byte[] bytes = new byte[1]; bytes[0] = (byte)0xFE; client.Send(bytes, bytes.Length); IPEndPoint rep = new IPEndPoint(IPAddress.Any, 0); byte[] recv = client.Receive(ref rep); Console.WriteLine(ASCIIEncoding.ASCII.GetString(recv)); Console.ReadLine();
服务器似乎完全忽略了数据包。 这是我找到的代码片段:
$fp = fsockopen($host, $port, $errno, $errstr, $timeout); if (!$fp) return false; //Send 0xFE: Server list ping fwrite($fp, "\xFE"); //Read as much data as we can (max packet size: 241 bytes) $d = fread($fp, 256); //Check we've got a 0xFF Disconnect if ($d[0] != "\xFF") return false;
有人可以指出我正在犯的错误吗? 谢谢!
如此处所述
客户端在标准端口上启动与Minecraft服务器的TCP连接。 它不是进行身份validation和登录(如协议加密中所述),而是发送两个字节序列FE 01.这是一个0xFE服务器列表ping数据包。 如果缺少第二个字节(0x01),服务器将等待大约1000毫秒,然后使用1.3及更早版本中使用的服务器 – >客户端格式进行回复。
您需要发送TCP请求而您正在发送UDP数据包…
- 仅更新不同的更改
- IIS 7.5中的MVC5与Windows身份validation:无法登录
- 如何将带有.MDF文件(Sql 2008)的现有ASP.NET MVC 3项目迁移到Windows Azure模拟器(使用SQL Azure)
- 处理嵌套“using”语句时“Dispose”抛出的exception
- 对于PixelWidth和PixelHeight,BitmapImage返回0
- XML序列化结构
- Global.asax中的ASP.NET C#Application_Error无法访问Session变量
- 突出显示RichTextBox1中的一行,行号=变量
- 如何使用IDataErrorInfo强制validation错误更新ViewModel中的View?