问题列表 - 第318057页

如何捕获 jsonrpc 服务器的服务器端错误?

假设我有一个基于 tcp 的基本 golang jrpc 服务器:

package main

import (
    "fmt"
    "net"
    "net/rpc"
    "net/rpc/jsonrpc"
)

type Arith int

type Args struct {
    A, B int
}

func (t *Arith) Add(args *Args, result *int) error {
    *result = args.A + args.B
    return nil
}

func RunServer() {
    arith := new(Arith)
    rpc.Register(arith)

    listener, err := net.Listen("tcp", ":8080")
    if err != nil {
        fmt.Println("Error starting server:", err)
        return
    }
    defer listener.Close()

    for {
        conn, err := listener.Accept()
        if err != nil {
            fmt.Println("Error …
Run Code Online (Sandbox Code Playgroud)

rpc tcp json-rpc go

2
推荐指数
1
解决办法
56
查看次数

如何检测键盘上当前是否没有按键被按下?

我一直在尝试制作一个带有箭头键移动的游戏,并希望制作“当所有箭头键均未按下时,该键=无”。所以我需要一种方法来检测这一点,我尝试使用 Keyup 但它不起作用。

我尝试使用有关堆栈溢出的其他问题,但我发现没有任何内容与我想象的那样与标题相关。如果有帮助,我可以在下面添加一些示例代码。

var key = "";
onkeydown = e => {
    key = e.code;
};
Run Code Online (Sandbox Code Playgroud)

这使得它设置为代码,但我希望当用户释放按键时它设置回任何内容。

// ive tried this keyup method buts it so buggy
onkeyup = e => {
    key = "";
}
Run Code Online (Sandbox Code Playgroud)

这是一个东西,但由于所有缺点,我无法使用它,我会再添加一件事,但作为我想要实现的目标的一个例子,我不知道我真正在做什么。

var ifAllKeysArePressed; // I dont know what it should equal or anything
// I want the value to be boolean
setInterval(() => {
    if(!ifAllKeysArePressed) {
        key = "";
    };
}, Infinity);
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
84
查看次数

Odoo 16 / 自定义网站:分页问题

我对搜索结果进行了分页。对于第一个,查询集给了我完美的结果,但是分页设置了所有页面,我通过单击任何页码从数据库中获取所有数据。

这是我的代码:

这是我添加的控制器:

 class MyCustomWeb(http.Controller):
        @http.route(['/customer', '/customer/page/<int:page>'], type="http", auth="user", website=True)
        def customer_kanban(self, page=1, search=None, **post):
            domain = []
            if search:
                domain.append(('name', 'ilike', search))
            post["search"] = search
            customer_obj = request.env['res.partner'].sudo().search(domain)
            total = customer_obj.sudo().search_count([])
            pager = request.website.pager(
            url='/customer',
            total=total,
            page=page,
            step=3,
            )

            offset = pager['offset']
            customer_obj = customer_obj[offset: offset + 5]
            return request.render('my_module.customer_form', {
                'search': search,
                'customer_details': customer_obj,
                'pager': pager,
            })
Run Code Online (Sandbox Code Playgroud)

这是XML代码:客户网站的模板:

    <template id="customer_form" name="Customers">
        <t t-call="website.layout">
            <div>
                <div class="col-md-6">
                    <br/>
                    <div>
                        <form action="/customer" method="post">
                            <t t-call="website.website_search_box">
                            </t>
                            <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/> …
Run Code Online (Sandbox Code Playgroud)

python xml controller odoo

5
推荐指数
1
解决办法
105
查看次数

翻译单元总是一个文件吗?

在 C++ 中,当我问某人什么是翻译单元时,普遍的回答是它通常是源文件。static并extern修改其他翻译单元访问全局函数和变量的方式。翻译单位也可以是其他东西吗?例如,汇编文件(不是带有内联 ASM 的 .cpp)?或者.dll?我见过经验丰富的软件工程师制作这样的程序。

我使用 C++ 的经验主要是与微控制器有关,因此我习惯于制作 main.cpp、一些 .h 文件,并包含一些来自 PIO 或 GitHub 的库,但不使用 ASM。

另一个混乱的来源是,有人说所有包含内容也是同一翻译单元的一部分。如果真是这样,那么他们static就extern不会像我认为的那样行事。我真的很想澄清一些与翻译单元相关的混乱。

c++ assembly translation-unit

2
推荐指数
1
解决办法
159
查看次数

使用两个泛型实现接口

我的家庭作业中有一项任务,但我无法克服它。 在此输入图像描述

Transformer接口的代码如下:

public interface Transformer<FROM, TO> {
    TO transform(FROM value);
}
Run Code Online (Sandbox Code Playgroud)

PersonSubscriberTransformer到目前为止,该类的代码如下所示:

public class PersonSubscriberTransformer<FROM, TO> implements Transformer {
    private Predicate<Person> predicate;
    public PersonSubscriberTransformer(Predicate<Person> predicate) {
        this.predicate = predicate;
    }
    @Override
    public Object transform(Object value) {
        return null;
    }
  }
Run Code Online (Sandbox Code Playgroud)

变换方法的参数应该是List<Person>并且它应该返回一个List<Subscriber>. 当我更改参数时,我收到一条错误消息,提示我应该将该方法拉至 Transformer 接口。

以正确的方式实施此方法的解决方案是什么?

java generics inheritance interface

0
推荐指数
1
解决办法
45
查看次数

什么是在软件中模拟 PDEP 和 PEXT 的快速回退算法?

我想围绕 x86 指令PDEP(并行位存储)和PEXT(并行位提取)创建一个包装器。在这些不可用的架构上(并且相应的内在函数也不可用),我需要一个快速的回退实现。

32 位整数的朴素算法如下所示:

constexpr std::uint32_t bit_deposit(std::uint32_t src, std::uint32_t mask) {
    std::uint32_t result = 0;
    for (std::uint32_t src_pos = 0, mask_pos = 0; mask_pos != 32; ++mask_pos) {
        if (mask >> mask_pos & 1) {
            result |= (src >> src_pos++ & 1) << mask_pos;
        }
    }
    return result;
}

static_assert(bit_deposit(0b000, 0b000000) == 0b000000);
static_assert(bit_deposit(0b101, 0b101010) == 0b100010);
static_assert(bit_deposit(0b111, 0b101010) == 0b101010);
Run Code Online (Sandbox Code Playgroud)
constexpr std::uint32_t bit_extract(std::uint32_t src, std::uint32_t mask) {
    std::uint32_t result = 0;
    for (std::uint32_t src_pos = …
Run Code Online (Sandbox Code Playgroud)

c++ optimization x86 bit-manipulation bmi

1
推荐指数
1
解决办法
413
查看次数

如何从 VS Code 内部安装/使用 SQL Developer?

我想使用我的 Oracle 数据库、运行查询、创建表、运行 sql 脚本等,但是是从 VS Code 进行。

如何在不创建 Oracle 帐户或安装 Oracle 客户端、.NET 或 Java 之类的东西的情况下做到这一点?

免责声明:我在 Oracle 工作。

oracle-sqldeveloper oracle-database

2
推荐指数
1
解决办法
157
查看次数

setenv在c编程中的用法?

#include <stdio h>
#include <stdlib.h>

int main(int argc, char *argv[], char *envp[])
{
    int i = 0;
    while (envp[i] != NULL)
    {
        if (strstr(envp[i], "SHLVL") != NULL)
            printf("%s\n", envp[i]);
        i++;
    }
  
    setenv("SHLVL", "stackoverflow", 2);
    i = 0;
    while (envp[i] != NULL)
    {
        if (strstr(envp[i], "SHLVL") != NULL)
            printf("%s\n", envp[i]);
        i++;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码中SHLVL是一个现有的环境变量。当我尝试使用它更改该变量的值时,setenv它会给出预期的输出。

SHLVL=1
SHLVL=stackoverflow
Run Code Online (Sandbox Code Playgroud)

在另一种情况下:具有不存在的环境变量的相同代码

int main(int argc, char *argv[], char *envp[])
{
    int i = 0;
    while (envp[i] != NULL)
    {
        if …
Run Code Online (Sandbox Code Playgroud)

c setenv

5
推荐指数
1
解决办法
118
查看次数

.NET 并发字典交换值

是否有类似于ConcurrentDictionary<TKey,TValue>和的数据结构Interlocked.Exchange<T>(...),它允许您自动设置新值并检索分配给任意键的旧值?任何超载似乎都不可能AddOrUpdate(...)。

.net c# collections concurrency concurrentdictionary

5
推荐指数
1
解决办法
98
查看次数

将数据移动到寄存器时出现分段错误

我正在尝试编写一个在汇编中添加两个数字的函数,并通过 C 调用它mov eax, [ebp+8]。我知道这一点是因为 GDB 说:

Program received signal SIGSEGV, Segmentation fault.
add () at add_two_numbers.s:12
12          mov eax, [ebp+8]
Run Code Online (Sandbox Code Playgroud)

这是我的汇编代码:

    .code32
    .intel_syntax noprefix
    .global add

    .section .text
add:
    push ebp
    mov ebp, esp

    sub esp, 4

    mov eax, [ebp+8]
    add eax, [ebp+12]

    mov esp, ebp
    pop ebp
    ret
Run Code Online (Sandbox Code Playgroud)

和我的 C 驱动程序代码:

#include <stdio.h>

int add(int, int);

int main(void)
{
    int x = 4, y = 10;
    int z = add(x, y);
    printf("%d", z);

    return 0;
} …
Run Code Online (Sandbox Code Playgroud)

c assembly

1
推荐指数
1
解决办法
85
查看次数