private void SocketContext_PublicIpReceived(object sender, PublicIpEventArgs e) { ISearchPublicIpContext socketContext = sender as ISearchPublicIpContext; if (socketContext != null) { string currentIp = e.Ip; DateTime startTime = DateTime.Now; Logger.LogDebug($"Start Time: {startTime.ToLongDateTime()}"); if (currentIp != CurrentIp) { Client.UpdateDomainRecord(currentIp); Logger.LogDebug($"Previous Time: {CurrentTime.ToLongDateTime()}"); Logger.LogDebug($"Previous IP: {CurrentIp}"); } else { Logger.LogDebug("IP address need not change"); } //Update成功后才能把当前IP/Time存起来 CurrentTime = startTime; CurrentIp = currentIp; Logger.LogDebug($"Current Time: {CurrentTime.ToLongDateTime()}"); Logger.LogDebug($"Current IP: {CurrentIp}"); Logger.LogDebug($"End Time: {DateTime.Now.ToLongDateTime()}"); Logger.LogDebug(string.Empty); Logger.LogDebug(string.Empty); } }
private void DataReceived(object sender, DataEventArgs e) { Logger.LogDebug($"Trigger <<{nameof(IClientSession)}>> {nameof(DataReceived)} event begin."); var clientSession = sender as IClientSession; if (clientSession != null) { clientSession.Close(); if (PublicIpReceived != null) { byte[] data = e.Data; string ipString = Encoding.UTF8.GetString(data, 0, 16).Replace("\0", string.Empty); var args = new PublicIpEventArgs { Ip = ipString }; try { Logger.LogDebug($"Trigger <<{nameof(IClientSession)}>> {nameof(PublicIpReceived)} event begin."); PublicIpReceived.Invoke(this, args); Logger.LogDebug($"Trigger <<{nameof(IClientSession)}>> {nameof(PublicIpReceived)} event end."); } catch (Exception ex) { Logger.LogDebug(0, ex, "PublicIpReceived event handler error."); } } } _isBreak = true; _waitHandle.Set(); Logger.LogDebug($"Trigger <<{nameof(IClientSession)}>> {nameof(DataReceived)} event end."); }