小编Mar*_*uzz的帖子

RPC身份验证错误

上周我使用RPC并且可以正常运行我的RPC服务器程序.但是,今天我尝试再次启动它,我收到此错误:

无法注册服务:RPC:身份验证错误; 为什么=客户端凭证太弱无法注册(X_PROG,X_VERS,udp)

谁能告诉我这个错误的原因是什么?

rpcinfo给了我这个:

   program version netid     address                service    owner
    100000    4    tcp6      ::.0.111               portmapper superuser
    100000    3    tcp6      ::.0.111               portmapper superuser
    100000    4    udp6      ::.0.111               portmapper superuser
    100000    3    udp6      ::.0.111               portmapper superuser
    100000    4    tcp       0.0.0.0.0.111          portmapper superuser
    100000    3    tcp       0.0.0.0.0.111          portmapper superuser
    100000    2    tcp       0.0.0.0.0.111          portmapper superuser
    100000    4    udp       0.0.0.0.0.111          portmapper superuser
    100000    3    udp       0.0.0.0.0.111          portmapper superuser
    100000    2    udp       0.0.0.0.0.111          portmapper superuser
    100000    4    local     /run/rpcbind.sock      portmapper superuser
    100000    3    local …
Run Code Online (Sandbox Code Playgroud)

authentication rpc

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

从shellscript开始后台进程,然后再回到前台

我正在尝试制作一个执行以下操作的shell脚本:

  • 启动程序x
  • 当x正在运行时执行一些命令,例如:

    echo "blabla" >> ~/blabla.txt
    
    Run Code Online (Sandbox Code Playgroud)
  • 在执行这些命令之后,程序x应该在前台运行,以便它可以接受用户输入.

到目前为止,我有:

~/x &
echo "blabla" >> ~/blabla.txt
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何将x移回前台.这是从shell脚本调用的,因此我不知道x的作业号移动到前台.

注意:一切都必须自动化,不需要用户与shell脚本的交互.

欢迎任何建议:)

shell background-process

6
推荐指数
2
解决办法
3042
查看次数

从对象转换为字节数组并返回 Java

我有两个类:TcpPacket 和 IpPacket。tcpPacket 应该存储在 ip 数据包的数据字段中。如何可靠地将 tcpPacket 对象转换为字节数组,以便将其存储在 IpPacket 的数据字段中?并且在另一端收到数据包后,如何可靠地将其转换回数据包对象?

public static final class TcpPacket {
    int source;
    int destination;

    public Packet( int source, int destination ) {
        this.source = source;
        this.destination = destination;
    }

    public String toString() {
        return "Source: " + source + ", Dest: " + destination;
    }
}

public static final class IpPacket {
    byte[] data;

    IpPacket( byte[] data ){
        this.data = data;
    }
}

TcpPacket tcpPacket = new TcpPacket( <someint>, <someint> );

// the following …
Run Code Online (Sandbox Code Playgroud)

java serialization bytearray

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

使用gdb和objdump进行调试

我有很多关于gdb和objdump的问题.

objdump中的地址

如果我这样做:objdump -d binary-file-name,那么我得到包含这部分的输出:

Disassembly of section .text:

080484a0 <_start>:
 80484a0:   31 ed                   xor    %ebp,%ebp
 80484a2:   5e                      pop    %esi
 80484a3:   89 e1                   mov    %esp,%ecx
Run Code Online (Sandbox Code Playgroud)

我假设第一列中的这些数字是地址?但是我不明白这些地址是如何知道的,因为当一个进程被加载时它被放在内存中的一个随机位置,这意味着代码每次都有不同的地址?或者这些地址是相对于进程'地址空间?

<_start>下列出的值是什么?

GDB逐步执行代码

我有一个二进制文件,其中没有源代码.我想逐步完成该程序,但没有符号信息.我无法在功能名称或亚麻布上设置断点.我试图在地址上设置一个断点,这很有效,但我无法弄清楚如何逐步完成该程序.当我这样做:(gdb)s或(gdb)n它说它没有行信息,只运行整个函数.有没有办法逐步完成它,或逐步完成装配说明?

assembly gdb objdump memory-address

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