コード例 #1
0
        static bool Init()
        {
            bool                 result               = false;
            LPListener           listener             = null;
            ServerMessageHandler serverMessageHandler = null;

            serverMessageHandler = new ServerMessageHandler();
            if (LOG_ERROR(serverMessageHandler != null))
            {
                goto Exit0;
            }

            result = LP.Init(EPlatform.Pc, true, serverMessageHandler);
            if (ERROR(result))
            {
                goto Exit0;
            }

            listener = LP.NetModule.CreateListener(IPAddress.Parse("127.0.0.1"), 7777, serverMessageHandler);
            if (LOG_ERROR(listener != null))
            {
                goto Exit0;
            }

            result = listener.Start();
            if (LOG_ERROR(result))
            {
                goto Exit0;
            }

            return(true);

Exit0:
            return(false);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: rhiskey/vkMCBot-Public
        //TODO message distribution list (VK)
        //private Queue<string> otpAndNameQueue = new Queue<string>();

        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");

            Program P = new Program();
            //TCP сервер и TCP клиент в отдельных потоках
            //TCPClient tcp_client = new TCPClient(port_tcp_chat_uplink, delay); // if false = user Community BOT
            //TCPOtpListenerServer tcp_otp_server = new TCPOtpListenerServer(port_tcp_otp);

            //Send OTP through TCP
            TCPOtpSender tCPOtpSender    = new TCPOtpSender(P.port_tcp_otp_uplink, delay);
            Thread       optSenderThread = new Thread(tCPOtpSender.TCPSenderRun);

            optSenderThread.Start();

            //Read OTP (UNUSED)
            //TCPOtpListenerServer tcp_otp = new TCPOtpListenerServer();
            //Thread otpServerThread = new Thread(tcp_otp.TCPOtpListenerServerStart);
            //otpServerThread.Start(port_tcp_otp_uplink);

            TCPClient tcp_c           = new TCPClient(port_tcp_chat_uplink, delay);
            Thread    tcpClientThread = new Thread(tcp_c.TCPClientRun);

            tcpClientThread.Start();

            //new Thread(() =>
            //{
            //    Thread.CurrentThread.IsBackground = true;
            //    TCPClient.Connect("127.0.0.1", port_tcp_chat_uplink);
            //}).Start();

            //TCPServer tcp_s = new TCPServer(port_tcp_chat_downlink, delay);
            //Thread tcpServerThread = new Thread(tcp_s.TCPServerStart);
            //tcpServerThread.Start();

            //AsynchronousSocketListener.StartListening();

            //Сервер для чтения чата/консоли и отправки в ВК каждому привязанному юзеру
            Thread t = new Thread(delegate()
            {
                // replace the IP with your system IP Address...
                Server myserver = new Server("127.0.0.1", port_tcp_chat_downlink, delay);
            });

            t.Start();

            Console.WriteLine("Server Started...!");

            //Old 1 thread
            LPListener LPL = new LPListener();
            //LongPollListener в отдельном потоке
            Thread LPthread = new Thread(LPL.LongPollListener);

            LPthread.Start();

            ////Each message or action = New Thread (multitask)
            ///Получается что при новом событии запускается новый поток с бесконечным циклом, в котором обрабатываются ВСЕ события, а не только инициатора (юзера)
            ///Нужно как-то передать в обработчик юзера ?
            ///

            //LPListener manager = new LPListener();
            //manager.OnNewMessage += (message, sender) =>
            //{
            //    //Обрабатываем входящее сообщение
            //};
            //manager.StartMessagesHandling();

            //manager.OnGroupJoin += (message, sender) =>
            //{
            //    //Обработка вступления в паблик
            //};
            //manager.StartGroupJoinHandling();

            //manager.OnGroupLeave += (message, sender) =>
            //{
            //    //Обработка выхода из паблика
            //};
            //manager.StartGroupLeaveHandling();

            //manager.OnMessageAllow += (message, sender) =>
            //{
            //    //Подписка на сообщения сообщества
            //};
            //manager.StartMessageAllowHandling();
        }