public AddressMessage(byte[] messagePayload) : base("addr", messagePayload) { int startIndex = 0; int addressesCount = VarInt.GetInt32( Payload, ref startIndex); for (int i = 0; i < addressesCount; i++) { NetworkAddresses.Add( NetworkAddress.ParseAddress( Payload, ref startIndex)); } }
public void SyncRemote(NetworkAddressRegisterService.NetworkAddressRegisterServiceClient serviceClient) { if (_unRegisterApps.Count <= 0) { return; } var networkAddress = new NetworkAddresses(); networkAddress.Addresses.Add(_unRegisterApps.Keys); var mapping = serviceClient.batchRegister(networkAddress); if (mapping.AddressIds.Count <= 0) { return; } foreach (var id in mapping.AddressIds) { _unRegisterApps.TryRemove(id.Key, out _); _applicationDic.TryAdd(id.Key, id.Value); } }
public async Task HandleClientCommand(object sender, SocketMessageEventArgs model) { var response = new ClientResponse(); try { switch (model.Message.ActionType) { case ClientMessageType.Ping: response.Type = ClientResponseType.Pong; break; case ClientMessageType.GetLSCState: response = new ClientResponse <LightStripStatus>() { Success = true, Message = string.Empty, Type = ClientResponseType.LSCData, Data = new LightStripStatus() { Frame = _lighter.Frame, BoundIp = _lighter.BoundIp, BoundPort = _lighter.BoundPort, NetworkInterfaces = NetworkAddresses.GetNetworkAddresses() } }; await SendResponse <LightStripStatus>(model.ClientId, response); break; } } catch (Exception ex) { _ = Task.Run(() => { _logger?.WriteLog(ex.ToString()); }); response.Success = false; response.Message = "Exception"; response.Type = ClientResponseType.None; await SendResponse(model.ClientId, response); } }
/// <summary> /// 登録されているサブネットマスクの配列を取得 /// </summary> /// <returns></returns> public string[] GetSubnetMasks() { return(NetworkAddresses.Select(x => x.SubnetMask).ToArray()); }
/// <summary> /// 登録されているIPアドレスの配列を取得 /// </summary> /// <returns></returns> public string[] GetIPAddresses() { return(NetworkAddresses.Select(x => x.IPAddress).ToArray()); }