Пример #1
0
        public void SendMessage(SocketMessage msg)
        {
            try
            {
                var remoteEP = new IPEndPoint(IPAddress.Loopback, 11000);

                using (var sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
                {
                    var messenger = new TcpSocketMessenger(sender);

                    sender.Connect(remoteEP);

                    messenger.SendMessage(msg);

                    var response = messenger.ReceiveMessage();

                    //System.Windows.MessageBox.Show(string.Format("{0} {1}", response.GetType().AssemblyQualifiedName,response.Message));
                    _messageHandler.HadleMessage(response);

                    sender.Shutdown(SocketShutdown.Both);
                }
            }
            catch (Exception e)
            {
                System.Windows.MessageBox.Show(string.Format("Unexpected exception : {0}", e.ToString()));
            }
        }
Пример #2
0
        public static void StartListening()
        {
            var localEndPoint = new IPEndPoint(IPAddress.Loopback, 11000);

            var listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            try
            {
                listener.Bind(localEndPoint);
                listener.Listen(10);

                while (true)
                {
                    Console.WriteLine("Waiting for a connection...");
                    Socket handler = listener.Accept();

                    var messenger = new TcpSocketMessenger(handler);
                    var msg       = messenger.ReceiveMessage();

                    Console.WriteLine(string.Format(
                                          "Received {0} from {1}:{2}",
                                          msg.GetType().Name,
                                          ((IPEndPoint)handler.RemoteEndPoint).Address,
                                          ((IPEndPoint)handler.RemoteEndPoint).Port));

                    var response = _messageHandler.HadleMessage(msg);
                    if (response != null)
                    {
                        messenger.SendMessage(response);
                    }

                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            Console.WriteLine("\nPress ENTER to continue...");
            Console.Read();
        }