Beispiel #1
0
    static void Main(string[] args)
    {
        System.Console.WriteLine("Start TCP Client ...");

        PGN.TcpCln pNet = new PGN.TcpCln();
        PGN.Packet pPck = new PGN.Packet();

        //pNet.Create(null, "192.168.0.20", 20000);
        pNet.Create(null, "127.0.0.1", 20000);
        pNet.Connect();

        int c = 0;

        while (true)
        {
            ++c;
            Thread.Sleep(1000);

            //float x = 100;
            //float y = 200;
            //float z = 300;

            int op = PGN.NTC.OP_CHAT;


            //string str = "ABCDEF HIJK: " + c;
            string str = "Send Mesage: Hello world: " + c;
            pNet.Send(str, op);


            //pPck.Reset();
            //pPck.PacketAdd(x);
            //pPck.PacketAdd(y);
            //pPck.PacketAdd(z);
            //pPck.PacketAdd(str);
            //pPck.EnCode(0, op);

            //PGN_TcpCln.PGN_Packet pck = new PGN_TcpCln.PGN_Packet();
            //pck.PacketAdd(c);
            //pck.PacketAdd(str);

            //pNet.Send(pck);
            //pNet.Send();
        }

        pNet.Destroy();
    }
Beispiel #2
0
        ////////////////////////////////////////////////////////////////////////
        // Inner Process...
        protected void IoConnect(IAsyncResult iar)
        {
            int    hr   = NTC.OK;
            TcpCln pCln = (TcpCln)iar.AsyncState;

            try
            {
                pCln.m_scH.EndConnect(iar);
            }
            catch (SocketException e0)
            {
                PGLog.LOGW("IoConnect::SocketException::" + e0.ToString());
                hr = NTC.EFAIL_SOCK;
                goto END;
            }
            catch (Exception e1)
            {
                PGLog.LOGW("IoConnect::Exception::" + e1.ToString());
                hr = NTC.EFAIL;
                goto END;
            }

            if (pCln != this)
            {
                PGLog.LOGW("IoConnect::Different object");
                hr = NTC.EFAIL;
                goto END;
            }


            lock (m_oLock)
            {
                PGLog.LOGW("IoConnect::Success");
                IoEvnt(NTC.EV_CONNECT, NTC.OK, pCln.m_scH, 0, this);
            }

            pCln.Recv();
            return;

END:
            lock (m_oLock)
            {
                IoEvnt(NTC.EV_CONNECT, hr, pCln.m_scH, 0, this);
            }
        }
Beispiel #3
0
        protected void IoSend(IAsyncResult iar)
        {
            int    hr   = NTC.OK;
            TcpCln pCln = (TcpCln)iar.AsyncState;
            int    sent = -1;

            try
            {
                sent = pCln.m_scH.EndSend(iar);
            }
            catch (SocketException e0)
            {
                PGLog.LOGW("IoSend::SocketException::" + e0.ToString());
                hr = NTC.EFAIL_SOCK;
                goto ERR;
            }
            catch (Exception e1)
            {
                PGLog.LOGW("IoSend::Exception::" + e1.ToString());
                hr = NTC.EFAIL;
                goto ERR;
            }

            if (pCln != this)
            {
                PGLog.LOGW("IoSend::Different object");
                hr = NTC.EFAIL;
                goto ERR;
            }

            PGLog.LOGI("IoSend::Success::Sending byte::" + sent);
            lock (m_oLock)
            {
                m_sndC = NTC.OK;
                IoEvent(NTC.EV_SEND, hr, pCln.m_scH, 0, this);
            }
            return;

ERR:
            lock (m_oLock)
            {
                IoEvent(NTC.EV_SEND, hr, pCln.m_scH, 0, this);
            }
        }