Exemplo n.º 1
0
        private void Client_DataReceived(Client sernder, ReceiveBuffer e)
        {
            BinaryReader r = new BinaryReader(e.BufStream);

            Commands header = (Commands)r.ReadInt32();

            switch (header)
            {
            case Commands.String:
            {
                string s = r.ReadString();

                Invoke((MethodInvoker) delegate
                    {
                        LsItems.Items.Add(s);
                    });
            }
            break;

            case Commands.Image:
            {
                int imageByteLen = r.ReadInt32();

                byte[] iBytes = r.ReadBytes(imageByteLen);

                Invoke((MethodInvoker) delegate
                    {
                        PicBox.Image = Image.FromStream(new MemoryStream(iBytes));
                    });

                iBytes = null;
            }
            break;
            }
        }
Exemplo n.º 2
0
        void receiveCallback(IAsyncResult ar)
        {
            try
            {
                int rec = socket.EndReceive(ar);

                if (rec == 0)
                {
                    if (Disconnected != null)
                    {
                        Disconnected(this);
                        return;
                    }

                    if (rec != 4)
                    {
                        throw new Exception();
                    }
                }
            }
            catch (SocketException se)
            {
                switch (se.SocketErrorCode)
                {
                case SocketError.ConnectionAborted:
                case SocketError.ConnectionReset:
                    if (Disconnected != null)
                    {
                        Disconnected(this);
                        return;
                    }
                    break;
                }
            }
            catch (ObjectDisposedException)
            {
                return;
            }
            catch (NullReferenceException)
            {
                return;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return;
            }

            buffer = new ReceiveBuffer(BitConverter.ToInt32(lenBuffer, 0));

            socket.BeginReceive(buffer.Buffer, 0, buffer.Buffer.Length, SocketFlags.None, receivePacketCallback, null);
        }