问题标签 [application-layer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
networking - 应用层具体是什么?
我正在阅读Mike Meyers撰写的Comptia network+ All in One Guide时,我遇到了这样一行:“应用程序层并不是指应用程序本身,而是指操作系统中内置的代码,这些代码使得能够制作网络感知应用程序。”
connect
所以我的问题是,这样的功能是否bind
包含listen
应用层?
networking - 如何使用 http 或其他应用层协议检测数据包?
我正在编写一个可以检测网络数据包中使用的协议的程序。对于接收到的每个数据包,它将尝试检测网络和传输层中的协议。在这两层中检测协议非常容易,因为在数据包的某处我们有一些字节告诉我们协议。但是对于应用程序层,据我所知,这要困难得多。没有在 HTTP 数据包中没有提到协议(据我所知)。检测应用层协议的另一个困难是整个 HTTP 请求或响应可能需要多个数据包,并且连接多个数据包要困难得多。
我想从理论上知道如何检测这些协议。
postgresql - 在应用程序代码上使用 Postgres 的外部过程语言
我试图找出使用非 plpgsql 过程语言(PL/Python、PL/Perl、PL/v8 等)在数据库级别实现数据操作逻辑而不是上升到模型级别的优缺点/与数据库(Rails、Entity Framework、Django 等)交互并在那里实现它的应用程序框架的 ORM。
举一个具体的例子,比如说,我有一个包含Mustache模板的表,我想以某种方式“渲染”它们。表定义:
通常我会去模型代码并添加额外的方法来渲染模板。Rails 中的示例:
但是,我也可以编写一个 PL/Python 函数,它可以做到这一点,但在数据库级别:
这在功能方面产生了几乎相同的结果。这个例子是非常基本的,但想法是使用 PL/Python(或其他)以比 PL/pgsql 允许的更高级的方式操作数据。也就是说,PL/pgsql 没有今天任何通用编程语言提供的相同数量的库(在示例中,我依赖于 Mustache 模板系统的实现,在这种情况下在 PL/pgsql 中实现是不切实际的)。我显然不会将 PL/Python 用于任何类型的网络或其他操作系统级别的功能,但对于专门针对数据的操作,这似乎是一种不错的方法(改变我的想法)。
到目前为止我可以观察到的几点:
- PL/Python 是一种“不受信任”的语言,我想这使得编写函数更加危险,因为您可以访问系统调用;至少感觉搞砸一个 PL/Python 函数的成本比在应用层出错的成本要高,因为前者是在数据库的上下文中执行的
- 数据库方法更具可扩展性,因为我正在处理最接近数据的级别,即我没有将表示逻辑分散在多个“层”(在这种情况下为 ORM 和 DB)。这意味着如果我需要一些其他对与数据交互感兴趣的外部服务,我可以将其直接插入数据库,绕过应用程序层。
- 在模型级别上实现这一点似乎执行起来要简单得多
- 支持应用程序代码变体似乎也更容易,因为要记住的概念更少
这两种方法的其他优点和缺点是什么?(例如性能、可维护性)
networking - 网络示例 - IP 地址
我刚刚开始学习网络并遵循 Kurose 和 Ross 的书。他们有以下 python 代码片段来说明 UDP 协议。
简单客户端的代码由下式给出
服务器的代码由下式给出
我很幸运拥有两台笔记本电脑,并考虑让一台运行客户端,一台运行服务器部分。这是幼稚的吗?我正在努力找出如何在serverName
此处指定变量或 IP 地址。两台笔记本电脑都在同一个 WiFi 网络中(即使它的 eduroam 可能会导致问题?)
当我使用终端查找本地 IP 地址时,一个给我 10.17.47.158,另一个给我 100.112.82.103。但仅仅使用这些 IP 地址似乎不起作用。我究竟做错了什么?另外为什么它们如此不同,这是否意味着它们没有连接到同一个路由器?
我可以只在两台不同的笔记本电脑上运行这两个应用程序,并且当我指定正确的 IP 地址时一切都应该正常工作吗?还是我在这里完全错了?
java - How to avoid services in DtoMappers layer
Good day, I have a Spring Boot based backend , we are using own library to convert JPA entities to Dto's (library works based on reflection).
The problem is , we inject service layer directly to some mappers. Let's say I have a UserEntity
and UserDto
.
UserDto has a field called avatar and avatars are stored in S3
.
So in order to build a UserDto we are using the code like this.
I don't like this approach because Mapper mustn't know anything about Service layer . However this mapper is used by other mappers as well. In case I want to return an OrderDto, it has a nested UserDto so OrderDto calls UserMapper internally. Are there any best practices for Mappers to be service free ?
So far I tried the following.
- Store avatar in
ThreadLocal
cache. When controller calls a service to get a user, service will store user's avatar in the ThreadLocal, and then Mapper will get it from ThreadLocal cache. Disadvantage - it's hard to test it and requires me to make Mocks - Create a separate POJO called UserWithAvatar that stores
UserEntity entity;String avatar
and create a mapper forUserWithAvatar
instead ofUserEntity
. Disadvantage - as I said this mapper will be used byOrderMapper
and order mapper takesOrderEntity
with nestedUserEntity
instead ofUserWithAvatar
c++ - 向 OMNET++ 中的所有节点发送 UDP 广播消息
我正在将 OMNET++ INET 用于 Ad hoc 网络。我想用 UDP 将我的消息广播给我的所有邻居。我已经尝试了 UDPBasicApp 中所有可能的解决方案。如果目的地不固定(接收器),它会随机选择一个时间向一个节点广播一条消息。UDPBasicBurstApp 也不向所有连接的节点发送消息。
udp - UDP广播到所有节点
我正在尝试向所有节点解决 OMNET++ Ad hoc 无线 UDP 消息。我的配置文件如下:
在ini文件中
但这不起作用。destAddress
可以设置为
但这仍然一次随机选择一个主机。如何将数据包发送到所有节点/主机。