小编bar*_*sju的帖子

将端口重新绑定到差异IP上的数据报套接字

在我的应用程序中,我hyave创建了一个datagarm套接字并绑定了一个端口说9999到ip 192.168.173.1现在我想将端口绑定到一个新的IP说192.168.173.2但是我无法做到这一步我遵循的步骤

1 DatagramSocket s= new DatagramSocket(port,ip1);
2 s.disconnect();

s.close();

s= new DatagramSocket(port,ip2);
Run Code Online (Sandbox Code Playgroud)

但这给了一个

java,net,BindException :Address already in use : Cannot bind
Run Code Online (Sandbox Code Playgroud)

任何见解都会非常有帮助.

java network-programming

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

删除由 tar 产生的尾随空字符

我正在尝试 tar 一些文件并通过 php passthru 命令将它们传递给用户。

问题是,即使 tar 文件应该只有 2k,但它始终是 10240。有趣的数字对吧?

所以我把它分解为:

-sh-4.1# tar czf -  test | wc -c
10240
Run Code Online (Sandbox Code Playgroud)

对比:

-sh-4.1# tar czf test.tar.gz test && wc -c test.tar.gz
2052 test.tar.gz
Run Code Online (Sandbox Code Playgroud)

所以 tar 显然是用 NULL 填充文件。

那么我怎样才能让 tar 停止这样做。或者,我如何去除尾随的 NULL。

我正在运行tar (GNU tar) 1.15.1并且无法在我的工作站上重现tar (GNU tar) 1.23,因为这是一个嵌入式项目升级不是我正在寻找的答案(还)。

编辑:我希望有一个确实需要写入文件系统的解决方法..也许是一种阻止它填充的方法,或者通过 sed 管道它或其他东西来去除填充。

linux tar

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

如何允许用户编写新内容但不更新/删除现有内容

所以我有这个应用程序允许匿名用户写但不读特定路径.他们将数据发布到审核的留言板上.

但根据我目前的安全规则,他们也可以覆盖现有数据.如何禁止更新并仅允许新帖子.

我目前的安全规则:

{
  "rules": {
     ".read": "auth != null",
     ".write": "auth != null",
    "inbox" : {
     ".write": true,
    },
    "moderated" : {
      ".read": true,
    },
  }
}
Run Code Online (Sandbox Code Playgroud)

firebase firebase-security

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

如何为pthread堆栈正确分配内存

我试图监视我的线程的堆栈使用情况.要做到这一点,我需要知道线程堆栈的地址,我发现这样做的唯一方法是使用设置堆栈pthread_attr_setstack().

我目前正在使用mmap来分配内存:

   pthread_attr_t ptAttr;
   pthread_t pth;
   pthread_attr_init(&ptAttr);
   void *stack = mmap(NULL, stksize, PROT_WRITE|PROT_READ, MAP_ANONYMOUS|MAP_SHARED, -1, 0);
   pthread_attr_setstack(&ptAttr, stack, stksize);
   pthread_create(&pth,&ptAttr,threadFunc,&info);
Run Code Online (Sandbox Code Playgroud)

所以第一个问题,这是一个分配内存的好方法mmap吗?标志是否正确?我应该使用malloc吗?这将在没有虚拟/交换内存的低资源设备上运行.

第二个问题,这个内存会在线程死亡时自动释放吗?如果您不确定,有没有办法找出它是否已被释放?

c mmap pthreads

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