예제 #1
0
        public async void MainTask()
        {
            while (true)
            {
                using (standardSignalObj = ReceiveObject())
                {
                    if (standardSignalObj != null)
                    {
                        await Task.Run(() =>
                        {
                            ImageProcessing();
                            ControllingProcessing();
                        });
                    }
                    else
                    {
                        // 서버 닫고...
                        server.Close();
                        server.Dispose();
                        server = null;

                        // 서버 정보 지우고...
                        ep = null;

                        // 입력 잠금 풀어주고, 인터넷 차단 풀어주고, 작업관리자 막고...
                        cmdProcessController.CtrlStatusEventCheck(false);
                        firewallPortBlocker.CtrlStatusEventCheck(false);
                        taskMgrController.CheckTaskMgrStatus(false);

                        // 서버 화면 띄우는 폼 닫고...
                        if (InvokeRequired)
                        {
                            this.Invoke(new ScreenOnDelegate(OutputDelegate), 0, null, false);
                        }

                        // 소켓에 쓰이는 Byte 배열 비워주고....
                        recvData = null;
                        sendData = null;

                        // 소켓 대기 시키고...
                        _ = Task.Run(() => SocketConnection());

                        break;
                    }
                }
            }
        }
예제 #2
0
        public SignalObj ByteToObject(Byte[] buffer)
        {
            string    jsonData;
            SignalObj signal;

            try
            {
                jsonData = Encoding.Default.GetString(buffer);
                signal   = JsonConvert.DeserializeObject <SignalObj>(jsonData);
            }
            catch (JsonSerializationException)
            {
                signal = new SignalObj();
            }

            return(signal);
        }