我注意到一个使用netcat和UDP的奇怪行为.我启动一个侦听UDP端口的netcat实例(实例1):
nc -lu -p 10000
Run Code Online (Sandbox Code Playgroud)
所以我启动另一个netcat实例(实例2)并尝试将数据报发送到我的进程:
nc -u 127.0.0.1 10000
Run Code Online (Sandbox Code Playgroud)
我看到了数据报.但是,如果我关闭实例2并重新启动netcat(实例3):
nc -u 127.0.0.1 10000
Run Code Online (Sandbox Code Playgroud)
我无法在实例1的终端上看到数据报.实际上,操作系统在实例3处为实例2分配了不同的UDP源端口,问题在于:如果我使用相同的instance2源端口(例如50000):
nc -u -p 50000 127.0.0.1 10000
Run Code Online (Sandbox Code Playgroud)
再次,netcat的实例1接收数据报.UDP是一种连接较少的协议,为什么呢?这是标准的netcat行为吗?
我以前编译过其他程序,但由于某种原因,我不能再工作了.我有一个mac这是我的代码.它的目的是取三个数字并找到平均值.
#include <stdio.h>
int main(){
int first;
int second;
int third;
float average=0.0;
printf ("This program will find the average of 3 numbers.\n");
delay(1000);
printf ("Type the first number.\n");
scanf ("%d", &first);
printf ("Type the second number.\n");
scanf ("%d", &second);
printf ("Type the third number.\n");
scanf ("%d", &third);
average = (first+second+third)/2.0;
printf ("The average of %d, %d, and %d is %.3f\n", first, second, third, average);
return (0);
}
Run Code Online (Sandbox Code Playgroud)
这些是我采取的步骤.我把average.c和average.h放在桌面上.我打开终端并输入
cd Desktop
gcc /Users/reneelion/Desktop/average.c average
Run Code Online (Sandbox Code Playgroud)
然后它说:
average: No such file or …Run Code Online (Sandbox Code Playgroud)