コード例 #1
0
        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");
        }
コード例 #2
0
        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);
        }