public override void Send(byte[] data) { if (client.Connected) { client.GetStream().BeginWrite(data, 0, data.Length, (ar) => { BaseTCPSocket baseSock = (BaseTCPSocket)ar.AsyncState; baseSock.ActionDone(RegisterCallbackType.SendDone, true); }, this); } else { ActionDone(RegisterCallbackType.SendDone, false); } }
public override void Connect(IPEndPoint ep) { client.BeginConnect(ep.Address, ep.Port, (ar) => { BaseTCPSocket sock = (BaseTCPSocket)ar.AsyncState; sock.client.EndConnect(ar); if (sock.client.Connected) { var data = new byte[10000]; sock.client.GetStream().BeginRead(data, 0, 10000, (asyncResult) => { BaseTCPSocket baseSock = (BaseTCPSocket)asyncResult.AsyncState; baseSock.OnReceivedData(data); }, sock); } sock.ActionDone(RegisterCallbackType.ConnectDone, sock.client.Connected); }, this); }