从这里窃取我已经设置了一个小的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的.
我正在使用适用于 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.exe并which node返回相同的结果,都指向该 …
好的,所以我是 Docker 的新手并且正在做一些教程,我想删除nginx和mongo图像:
$ 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) 这是我的Perl代码:
use strict;
use warnings;
my @words = ("alpha", "bravo", "charlie");
(my $word = $_) foreach @words;
print $word;
Run Code Online (Sandbox Code Playgroud)
我希望这段代码可以做两件事之一:
$word循环完成后的最终值.my $word是一个词法变量,其范围是foreach循环; 它不存在于最后一行.相反,它似乎的价值$word就是undef,和Perl提出了警告,并打印出空字符串.
为什么?
我有一个特定的 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?