private void OnDisconnected(SocketEventArgs e) { if (Disconnected != null) { Disconnected(this, e); } }
private void OnDataReceived(SocketEventArgs e) { if (DataReceived != null) { DataReceived(this, e); } }
void Disconnected(object sender, SocketEventArgs e) { proxy.FlushConnected(); }
void DataReceived(object sender, SocketEventArgs e) { var bytes = new byte[16]; Buffer.BlockCopy(e.Data, 0, bytes, 0, 16); var ssid = new Guid(bytes); var data = e.Data; var sendResult = proxy.SendDataBack(ssid, e.Data, 16, e.Data.Length - 16); if (!sendResult) { Task.Factory.StartNew(() => { NameValueCollection requestParam = new NameValueCollection(); requestParam["actionid"] = "2"; requestParam["ssid"] = ssid.ToString("N"); requestParam["msgid"] = "0"; byte[] paramData = Encoding.ASCII.GetBytes(RequestParse.ToQueryString(requestParam)); try { Send(paramData); } catch (Exception ex) { logger.Error("发送tcp连接断开通知失败。", ex); } }); } }