public void Go() { string username = Name; string password = "******"; WebRequest request = WebRequest.Create("http://127.0.0.1:2020/login/" + username + "/" + password); var response = request.GetResponse(); var stream = response.GetResponseStream(); if (stream != null && stream.CanRead) { byte[] buffer = new byte[10240]; int length = stream.Read(buffer, 0, buffer.Length); dynamic result = JObject.Parse(Encoding.UTF8.GetString(buffer, 0, length)); if (result["result"].ToString() == "OK") { _token = result["token"].ToString(); Server server = new Server() { //DestID = s.destID, IP = "127.0.0.1", Name = "测试", Port = 2021 }; EnterGame(server); } else { Console.WriteLine(result["result"].ToString()); } } Thread thread = new Thread(() => { int times = 1; Random random = new Random(); while (true) { SendChat(times++.ToString()); Thread.Sleep(random.Next(1000, 6000)); } }); thread.Start(); }
void EnterGame(Server server) { if (_stream == null || !_stream.CanWrite) { if (server == null) return; _client = new TcpClient(); _client.Connect(server.IP, server.Port); _stream = _client.GetStream(); Rece(_stream); } var converter = EndianBitConverter.Big; byte[] body = Encoding.UTF8.GetBytes(_token); int length = body.Length; byte[] data = new byte[length + 10]; int offset = 0; data[3] = 0x01; //cmd offset += 4; converter.CopyBytes((ushort)(length + 4), data, offset); offset += 2; converter.CopyBytes((int)CMD_Chat.Send, data, offset); offset += 4; Buffer.BlockCopy(body, 0, data, offset, length); _stream.Write(data, 0, data.Length); }