我将一个 dll 注入游戏客户端并使用 Easyhook 连接发送/接收。我可以轻松监控客户端发送到服务器和从服务器接收的数据包。我想发送自己的数据包,所以我做了一个这样的函数:
public static void SendPacket()
{
string packet= "dance emotion packet";
byte[] byData = System.Text.Encoding.ASCII.GetBytes(packet);
IntPtr unmanagedPointer = Marshal.AllocHGlobal(byData.Length);
Marshal.Copy(byData, 0, unmanagedPointer, byData.Length);
send(socket, unmanagedPointer, byData.Length, 0);
}
我认为程序发送数据包很好,但我没有从服务器收到任何东西。例如,如果我发送一个数据包来做一个舞蹈情感,服务器没有响应。有趣的是,当我在客户端做某事(例如开一家商店或搬家或任何向服务器发送数据包的事情)时,服务器会响应我在注入的 dll 中使用 SendPacket() 函数之前发送的舞蹈数据包.
所以问题是我的 dll 无法发送数据包或服务器没有响应。有人对此有解决方案吗?
提前致谢。