Esempio n. 1
0
        private void Listen()
        {
            while (_IsListen)
            {
                byte[] buffer = new Byte[1024]; // 수신되는 버퍼

                Socket sockMCS = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                try
                {
                    Console.WriteLine("Waiting Connect - FMS");
                    sockMCS = listen.Accept(); // 접속때까지 기다림.
                    Console.WriteLine("connected - FMS");

                    try
                    {
                        if ((sockMCS == null) || (!sockMCS.Connected))
                        { // 연결이상, 다시 루프로
                            sockMCS = null;
                            continue;
                        }
                        else if (sockMCS.Connected)
                        {
                            int    length  = sockMCS.Receive(buffer);
                            byte[] tmp_arr = new byte[length];
                            //Console.WriteLine("buffer's length : " + length + "tmp_arr's length : " + tmp_arr.Length);
                            for (int i = 0; i < length; i++)
                            {
                                tmp_arr[i] = buffer[i];
                                ///Console.Write(tmp_arr[i].ToString());
                            }
                            ClassConvert c = new ClassConvert();
                            Console.WriteLine(c.byteToString(tmp_arr));
                            process(tmp_arr); // data process
                            sockMCS.Shutdown(SocketShutdown.Both);
                            sockMCS.Close();
                            sockMCS = null;
                        }
                    }
                    catch (Exception err)
                    {
                        ld.logDate(err.ToString());
                    }
                }
                catch (System.Threading.ThreadAbortException)
                {
                    try
                    {
                        sockMCS.Shutdown(SocketShutdown.Both);
                        sockMCS.Close();
                        sockMCS = null;
                    }
                    catch { }
                    if (sockMCS != null)
                    {
                        sockMCS = null;
                    }
                    continue;
                }
            }
        }