上周我使用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) 我正在尝试制作一个执行以下操作的shell脚本:
当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脚本的交互.
欢迎任何建议:)
我有两个类: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) 我有很多关于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它说它没有行信息,只运行整个函数.有没有办法逐步完成它,或逐步完成装配说明?