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(); }
//////////////////////////////////////////////////////////////////////// // 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); } }
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); } }