在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并
在凯文·法尔( Kevin Fall )和理查德·史蒂文斯( Richard Stevens )的"TCP/IP插图,第1卷“( TCP/IP Illustrated,第1卷)一书中,许多例子使用的是一个名为"sock”的实用程序,它可以做各种与TCP/IP相关的事情,例如它可以充当UDP服务器,也可以将UDP数据报发送到这样的服务器。我想用书中描述的相同的方式测试一些基本的东西,例如在一台计算机上启动UDP服务器,并从另一台计算机向它发送UDP数据报。
为了了解我正在寻找的实用程序,根据这本书,sock程序可以像这样用于在端口7777上启动IPv4 UDP服务器:
sock
我正在编写一个脚本,该脚本侦听端口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
最大的问题是,我不知道如何实际从数
我试图使用OCaml和异步API来做一个简单的UDP服务器,但是我被困住了。我不能让这个简单的例子奏效。
let wait_for_datagram () : unit Deferred.t =
let port = 9999 in
let addr = Socket.Address.Inet.create Unix.Inet_addr.localhost ~port in
let%bind socket = Udp.bind addr in
let socket = Socket.fd socket in
let stop = never () in
let co