public async Task <bool> Login( string ip, int port, JT809_0x1001 jT809_0x1001) { if (disposed) { return(await Task.FromResult(false)); } logger.LogInformation($"ip:{ip},port:{port}"); this._jT809_0x1001 = jT809_0x1001; this.iPEndPoint = new IPEndPoint(IPAddress.Parse(ip), port); bool successed = false; try { //IPAddress[] hostinfo = Dns.GetHostAddresses(host); //IPAddress address = hostinfo[0]; if (channel == null) { channel = await bootstrap.ConnectAsync(iPEndPoint); successed = channel.Open && channel.Active; if (channel.Open && channel.Active) { //JT809.Protocol.MessageBody.JT809_0x1001 jT809_0X1001 = jT809_0X1001 new Protocol.MessageBody.JT809_0x1001(); //jT809_0X1001.DownLinkIP = downLinkIP; //jT809_0X1001.DownLinkPort = downLinkPort; //jT809_0X1001.UserId = userId; //jT809_0X1001.Password = password; var package = Protocol.Enums.JT809BusinessType.主链路登录请求消息.Create(new JT809Header { MsgGNSSCENTERID = config.HeaderOptions.MsgGNSSCENTERID }, _jT809_0x1001); await channel.WriteAndFlushAsync(new JT809Response(package, 256)); //await channel.WriteAsync(new JT809Response(package, 100)); logger.LogInformation("等待登录应答结果..."); manualResetEvent.Pause(); } } } catch (AggregateException ex) { logger.LogError(ex.InnerException, $"ip:{ip},port:{port}"); } catch (Exception ex) { logger.LogError(ex, $"ip:{ip},port:{port}"); } return(await Task.FromResult(successed)); }