在Mac OS X 10.9.5上,我正在运行boot2docker,并希望将一个非特权UDP端口69临时转发到boot2docker虚拟机的端口69。Virtualbox只支持转发特权端口。
我尝试过像这样运行socat:
socat UDP-LISTEN:69,fork,reuseaddr UDP:192.168.59.101:69
它可以正常工作,直到我尝试建立一个tftp连接,然后它就崩溃了:
socat[32232] E bind(5, {LEN=16 AF=2 0.0.0.0:69}, 16): Address already in use
对于UDP,检查netstat -an并
我正在编写一个脚本,该脚本侦听端口2088上的广播UDP数据包,读取数据,然后发送到URL。特别是,当我打电话的时候,我想让一盏LIFX灯变成红色。每当我们的手机改变状态(脱钩、挂断、铃声等),它就会在UDP 2088上播放它的状态。
所以,伪代码应该是这样的:
Start Loop
Listen for UDP 2088 from source [my phone]
If data = [x] then send command to turn on lamp
else if data = [y] send command to turn off lamp
最大的问题是,我不知道如何实际从数
在凯文·法尔( Kevin Fall )和理查德·史蒂文斯( Richard Stevens )的"TCP/IP插图,第1卷“( TCP/IP Illustrated,第1卷)一书中,许多例子使用的是一个名为"sock”的实用程序,它可以做各种与TCP/IP相关的事情,例如它可以充当UDP服务器,也可以将UDP数据报发送到这样的服务器。我想用书中描述的相同的方式测试一些基本的东西,例如在一台计算机上启动UDP服务器,并从另一台计算机向它发送UDP数据报。
为了了解我正在寻找的实用程序,根据这本书,sock程序可以像这样用于在端口7777上启动IPv4 UDP服务器:
sock
我做了一个小工具来接收/发送特定的UDP数据包。它在我的家庭网络中工作没有问题,无论数据包来自这台电脑,我的Android手机或网络中的另一台电脑。但是如果我试图在网络中使用它,它应该被使用,接收部分停止工作。
防火墙不是问题所在,因为我在Wireshark中看到了收到的UDP数据包。下面是问题所在的代码部分(如果是由代码引起的):
static byte[] buffer = new byte[16];
..... //more code + sending part of the program
while (true){