小编qnt*_*ntm的帖子

netcat发送额外的"X"UDP数据包

这里窃取我已经设置了一个小的Python脚本,它侦听端口并打印出它收到的所有UDP数据包:

import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))

while True:
    data, addr = sock.recvfrom(1024)
    print "received message:", repr(data)
Run Code Online (Sandbox Code Playgroud)

现在我netcat用来向这个脚本发送数据.这是我的命令行.

echo -e "foo:1|c" | netcat -v -u localhost 5005
Run Code Online (Sandbox Code Playgroud)

这是Python的输出:

received message: 'X'
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'X'
received message: 'foo:1|c\n'
Run Code Online (Sandbox Code Playgroud)

前四个左右的"X"线以大约一秒的间隔到达,然后最后两条线大致同时到达.

我的问题是:这些额外的"X"数据包来自哪里,如果来源是netcat,那么我该如何防止netcat它们发出?netcat我相信这是BSD的.

python sockets netcat

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

如何在 Windows 版 Git Bash 中将文字正斜杠传递到 Node.js?

我正在使用适用于 Windows 的 Git Bash(例如,我右键单击某个目录并从上下文菜单中选择“此处的 Git Bash”)。Node.js v5.10.1。

这是我完整的 Node.js 脚本example.js

console.log(process.argv);
Run Code Online (Sandbox Code Playgroud)

这是我的命令行和输出:

$ node example.js "https://example.com"
[ 'C:\\...\\node.exe',
  'C:\\...\\example.js',
  'https:\\example.com' ]
Run Code Online (Sandbox Code Playgroud)

请注意输入参数“ https://example.com ”如何有两个文字正斜杠,但结果字符串“https:\\example.com”有一个文字反斜杠

我发现命令行中没有多少反斜杠转义(例如“https:\\/example.com”)或额外的正斜杠(例如“ https://////example.com ”)可以阻止这种情况发生。结果总是一个字面反斜杠。

使用相同的 Node.js 可执行文件从普通的 Windowscmd.exe窗口运行相同的脚本不会导致此行为。从 Git Bash for Windows 运行等效的 Python 脚本不会导致此行为。

更新

看这个:

$ node.exe -e "console.log(process.argv)" "https://example.com"
[ 'C:\\...\\node.exe',
  'https://example.com' ]

$ node -e "console.log(process.argv)" "https://example.com"
[ 'C:\\...\\node.exe',
  'https:\\example.com' ]
Run Code Online (Sandbox Code Playgroud)

为什么从调用末尾删除“.exe”会导致斜线反转?如果相关,我正在使用 NVM 1.1.0。which node.exewhich node返回相同的结果,都指向该 …

javascript git bash node.js

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

Docker镜像无法删除,“没有这样的镜像”

好的,所以我是 Docker 的新手并且正在做一些教程,我想删除nginxmongo图像:

$ docker image ls
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
nginx                latest              be1f31be9a87        12 days ago         109MB
mongo                3.4                 598e8cf490a6        12 days ago         361MB
Run Code Online (Sandbox Code Playgroud)

所以我开始nginx

$ docker image rm nginx
Untagged: nginx:latest
Untagged: nginx@sha256:9ad0746d8f2ea6df3a17ba89eca40b48c47066dfab55a75e08e2b70fc80d929e
Deleted: sha256:be1f31be9a87cc4b8668e6f0fee4efd2b43e5d4f7734c75ac49432175aaa6ef9
Deleted: sha256:7609c40a03b852382a43d79231d9d4ca7661cd1ac9edcb46f78a44fff4ed59ca
Deleted: sha256:a2b6968c4326640dd5e9e22ddf6cebb61ba1a4b79a4ac8d194f93000c5a4c3e2
Deleted: sha256:8b15606a9e3e430cb7ba739fde2fbb3734a19f8a59a825ffa877f9be49059817
Run Code Online (Sandbox Code Playgroud)

过去了吗?

$ docker image ls
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
mongo                3.4                 598e8cf490a6        12 days ago         361MB
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。现在为mongo

$ docker image rm mongo
Error: No such …
Run Code Online (Sandbox Code Playgroud)

docker

4
推荐指数
2
解决办法
6063
查看次数

为什么这个词法变量在循环后不保留其值?

这是我的Perl代码:

use strict;
use warnings;

my @words = ("alpha", "bravo", "charlie");

(my $word = $_) foreach @words;

print $word;
Run Code Online (Sandbox Code Playgroud)

我希望这段代码可以做两件事之一:

  1. 打印字符串"charlie",这是$word循环完成后的最终值.
  2. 抱怨编译错误,因为它my $word是一个词法变量,其范围是foreach循环; 它不存在于最后一行.

相反,它似乎的价值$word就是undef,和Perl提出了警告,并打印出空字符串.

为什么?

perl

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

覆盖 web.xml 中 URL 模式“/”的“默认 servlet”行为

我有一个特定的 JSP,我想在我的网站的根页面(URL“/”)上提供它。所有其他请求都应静态提供。所以很自然地我web.xml这样配置:

<servlet>
  <servlet-name>index</servlet-name>
  <jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
  <servlet-name>index</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

<servlet>
  <servlet-name>default</servlet-name>
  <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

不幸的是,它似乎<url-pattern>/</url-pattern>没有做我需要做的事情。它不是只处理“/”URL,而是特殊情况,并且充当“默认映射”,处理其他 URL 模式未捕获的所有请求

在这种特殊情况下,defaultservlet<url-pattern>/*</url-pattern>处理所有URL。对“/”的请求会出现 404,并且index无论发出什么请求,servlet 都不会被调用。

有没有办法显式地将“/”URL 映射到特定的servlet?

java jsp tomcat servlets

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

标签 统计

bash ×1

docker ×1

git ×1

java ×1

javascript ×1

jsp ×1

netcat ×1

node.js ×1

perl ×1

python ×1

servlets ×1

sockets ×1

tomcat ×1