Esempio n. 1
0
        private void ListeningForServerMessage(Socket client)
        {
            int bufferSize = 1024;

            byte[] buffer   = new byte[bufferSize];
            int    byteRead = 0;

            try
            {
                while (true)
                {
                    buffer.Initialize();

                    byteRead = client.Receive(buffer);
                    if (byteRead > 0)
                    {
                        CustomMessage msg = MessageConveter.ByteArrayToMessage(buffer);
                        //send mouse event to system
                        SendMessageToSystem(msg);

                        Console.WriteLine("MOUSE: " + msg.XPoint + '|' + msg.YPoint);

                        NotifyReceivedDone(client);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 2
0
        private void NotifyReceivedDone(Socket socket)
        {
            CustomMessage message = new CustomMessage(MessageType.CommonMessage, CommonMessage.MSG_RECEIVED);

            byte[] bytes = MessageConveter.MessageToByteArray(message);
            socket.Send(bytes);
        }
Esempio n. 3
0
 public void SendKeyboardMessage(KeyboardState keyboardState, WindowsInput.Native.VirtualKeyCode virtualKeyCode)
 {
     lock (lookKeyboardMsg)
     {
         CustomMessage msg  = new CustomMessage(MessageType.KeyboardMessage, keyboardState, virtualKeyCode);
         byte[]        data = MessageConveter.MessageToByteArray(msg);
         this.socket.Send(data);
         WaitForMessageSendComplete();
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Send and wait for notify message from client.
 /// After send message, client respond must be received before send next messages
 /// </summary>
 /// <param name="message"></param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 public void SendMouseMessage(MouseState mState, int x, int y)
 {
     lock (lookMouseMsg)
     {
         CustomMessage msg  = new CustomMessage(MessageType.MouseMessage, mState, x, y);
         byte[]        data = MessageConveter.MessageToByteArray(msg);
         this.socket.Send(data);
         WaitForMessageSendComplete();
     }
 }
Esempio n. 5
0
        private void WaitForMessageSendComplete()
        {
            int bufferSize = 1024;

            byte[] bytes = new byte[bufferSize];
            Socket.Receive(bytes);
            CustomMessage msg = MessageConveter.ByteArrayToMessage(bytes);

            if (msg.MsgType != MessageType.CommonMessage || msg.CommonMessage == CommonMessage.MSG_RECEIVED)
            {
                //Error case
            }
        }
        /// <summary>
        /// Start listening for client connect request.
        /// Each connect must be verified before create new CLientPC object to handle this connection.
        /// </summary>
        public void StartListening()
        {
            //Start Listening

            // Data buffer for incoming data.
            int bufferSize = 1024;

            byte[] bytes = new Byte[bufferSize];

            // Establish the local endpoint for the socket.
            // The DNS name of the computer
            // running the listener is "host.contoso.com".
            IPHostEntry ipHostInfo    = Dns.GetHostEntry(Dns.GetHostName());
            IPAddress   ipAddress     = ipHostInfo.AddressList[5];
            IPEndPoint  localEndPoint = new IPEndPoint(ipAddress, 11000);

            // Create a TCP/IP socket.
            Socket listener = new Socket(ipAddress.AddressFamily,
                                         SocketType.Stream, ProtocolType.Tcp);

            // Bind the socket to the local endpoint and listen for incoming connections.
            try
            {
                listener.Bind(localEndPoint);
                listener.Listen(100);

                while (true)
                {
                    // Start an asynchronous socket to listen for connections.
                    Console.WriteLine("Waiting for a connection...");
                    Socket handler = listener.Accept();
                    handler.Receive(bytes);
                    CustomMessage msg = MessageConveter.ByteArrayToMessage(bytes);

                    if (msg.MsgType == MessageType.CommonMessage)
                    {
                        //When a client send a connect request.
                        //Main form will be informed by this EventHandler
                        NotifyClientConnected(handler);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
Esempio n. 7
0
        public void StartConnect(IPAddress ipAddress, int port)
        {
            Task t = new Task(() =>
            {
                try
                {
                    IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, port);
                    Socket client         = new Socket(ipAddress.AddressFamily,
                                                       SocketType.Stream, ProtocolType.Tcp);
                    client.Connect(ipEndPoint);

                    int bufferSize = 1024;
                    byte[] buffer  = new byte[bufferSize];
                    int byteRead   = 0;

                    CustomMessage reqConnMessage = new CustomMessage(MessageDefinition.MessageType.CommonMessage, MessageDefinition.CommonMessage.CONN_REQ);
                    buffer = MessageConveter.MessageToByteArray(reqConnMessage);

                    client.Send(buffer);
                    buffer.Initialize();

                    byteRead = client.Receive(buffer);
                    if (byteRead > 0)
                    {
                        CustomMessage msg = MessageConveter.ByteArrayToMessage(buffer);

                        if (msg.MsgType == MessageType.CommonMessage &&
                            msg.CommonMessage == CommonMessage.CONN_ACCEPT)
                        {
                            ConnAcceptedEvent(client);
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    throw;
                }
            });

            t.Start();
        }