private static void OnConnect(IAsyncResult result) { LCDClient client = (LCDClient)result.AsyncState; if (!result.IsCompleted) { Hyena.Log.Debug("Not yet connected to " + client.host + ":" + client.port.ToString()); return; } if (!client.socket.Connected) { Hyena.Log.Warning("Could not connect to " + client.host + ":" + client.port.ToString()); client.connecting = false; return; } client.socket.EndConnect(result); Hyena.Log.Debug("Connected to " + client.host + ":" + client.port.ToString()); client.socket.BeginReceive(client.recvbuf, 0, bufsize, SocketFlags.None, new AsyncCallback(OnReceive), client); client.SendString("hello\n"); }
private static void OnReceive(IAsyncResult result) { LCDClient client = (LCDClient)result.AsyncState; int bytecount = client.socket.EndReceive(result); string s = Encoding.ASCII.GetString(client.recvbuf, 0, bytecount); client.recvbuf.Initialize(); //Hyena.Log.Debug("Received "+bytecount.ToString()+" bytes: "+s.Trim()); if (client.connecting) { string[] ssplit = s.Split(" \n".ToCharArray(), 20); client.lcd = new LCD(Int32.Parse(ssplit[7]), Int32.Parse(ssplit[9]), Int32.Parse(ssplit[11]), Int32.Parse(ssplit[13])); client.SendString("client_set -name Banshee\n"); client.connecting = false; client.Connected(); } client.socket.BeginReceive(client.recvbuf, 0, bufsize, SocketFlags.None, new AsyncCallback(OnReceive), client); }