草庐IT

udp广播

全部标签

go - 如何在golang中发送一个假的udp包

我正在尝试发送一个假的udp(一个随机的mac地址,比如说01:ff:ff:ff:ff:ff)包,由服务器端的ServeDHCP处理,我正在运行以下dhcpv4github存储库github.com/krolaw/dhcp4.发送发现包的目的是检查dhcp是否存在。事实上,我创建了一个名为check的新函数func(h*DHCPHandler)check(){con,err=net.Dial("udp","127.0.0.1:67")for{//fakeudppackage???time.Sleep(10*time.Minute)}在函数的主体中,我有以下调用gohandler.che

sockets - Golang UDP 和 TCP 并排

是否可以在一个脚本中同时使用TCP和UDP?我需要我的一些包通过TCP发送和接收,一些通过UDP发送和接收funcmain(){////───TCP────────────────────────────────────────────────────────────────────////Listenforincomingconnections.l,err:=net.Listen("tcp","localhost"+":"+"3000")iferr!=nil{fmt.Println("Errorlistening:",err.Error())os.Exit(1)}//Closethe

go - 在 TCP 连接的端口上发送 UDP 数据包

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改善这个问题吗?通过editingthispost添加详细信息并澄清问题.3年前关闭。Improvethisquestion我有一个GolangTCP服务器,即net.TCPConn,连接在一个端口上,除了TCP流之外,它还必须接收UDP数据包并以UDP数据包进行响应。传入的UDP数据包在服务器上弹出(来自net.TCPConn.Read()),但我不知道如何再次发回UDP数据包。所有UDP写入方法仅适用于net.UDPConn.net.UDPConn.WriteMsgUDP()诱人地谈论它是应用于连接的还是非连接

golang udp客户端无法从服务器接收消息

我可以成功地从客户端向服务器发送消息。但是当我尝试回复消息给客户端时,客户端却无法接收到消息。客户:conn,_:=net.Dial("udp",serv_addr:port)deferconn.close()buf:=[]byte("Hey,server")conn.Write(buf)recv:=make([]byte,1024)fmt.Println("Reading...\n")conn.Read(recv)服务器:addr,_:=net.ResolveUDPAddr("udp",addr:port)msg:=make([]byte,1024)conn,_:net.Listen

go - 为什么我的 UDP 拨号器没有监听?

我有两个程序,一个监听器和一个拨号器。我想要同一端口上的双向UDP通信。我的监听器按预期读取从拨号器发送的数据报,然后发回它自己的5个数据报。唯一的问题是,我的拨号器没有读取它。我尝试使用net.DialUDP,但是当我使用它时,从拨号器发送了0个数据报。listener-效果很好funcmain(){addr:=net.UDPAddr{Port:7000,IP:net.ParseIP("127.0.0.1"),}conn,err:=net.ListenUDP("udp",&addr)deferconn.Close()iferr!=nil{panic(err)}i:=0b:=make(

node.js - UDP 和网络套接字的数据丢失

我有以下场景:本地PC通过蓝牙以50.000位/秒的速度接收数据样本。数据通过UDP发送到某个服务器。服务器依次通过网页/JavaScript和网络套接字将数据分发到处理数据的已连接浏览器。最终,来自浏览器的结果通过UDP传回本地PC。到目前为止,我正在试验严格的本地设置,即一切都在一台拥有四核CPU的机器上运行。我已经用node.js和golang编写了服务器代码。在这两种情况下,都存在严重的数据丢失,即即使只有一个Web套接字客户端连接,也并非服务器成功接收到通过UDP发送的每个样本。造成损失的瓶颈在哪里?一切都在本地机器上运行是事实吗?会不会是websocket带宽太小了?使用W

sockets - UDP 代理,如何维护/重用/清除连接的客户端池?

我正在创建一个UDP-proxy在go,但在使用iperf进行一些负载测试时,我开始收到此错误:socket:toomanyopenfiles经过搜索和测试,我发现如果我使用map创建一个池打开连接是关键*net.UDPAddr.String()value是UDP-proxy的一个实例包含*net.UDPConn,如果客户端地址相同,我可以重用现有连接:varclientsmap[string]*UDPProxy.UDPProxy=make(map[string]*UDPProxy.UDPProxy)这blockcode看起来像://waitforconnectionsfor{n,cl

go - 本地主机 UDP 客户端未从 UDP 代理接收数据包

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。3年前关闭。Improvethisquestion我有一个代理,它在Minecraft(Windows10版)客户端和服务器之间运行,协议(protocol)是UDP。客户端广播一个未连接的ping,然后服务器回复一个未连接的pong,一切正常。问题是当服务器将数据包发送到我的代理时,我的代理将其发送给客户端,但由于某种原因,在那部分发生了一些事情;要么我的代理没有发送数据包,要么客户端没有收到数据包,但很可能是第二种选

go - 在取消 UDP 消息上启动多个计时器

我正在监听UDP上的消息。我们有以这种方式宣布自己的设备。他们还说什么时候发送下一个公告。如果没有发生这种情况,我们假设设备不见了。我想列出当前网络中的设备。我想添加新设备并移除那些我没有听说过的设备。这是我到目前为止所得到的。1)我有一个内存数据库,其中包含所有设备。funcNewDB()*DB{return&DB{table:make(map[string]Announcement),}}typeDBstruct{mutexsync.Mutextablemap[string]Announcement}func(db*DB)Set(ipstring,annAnnouncement){

go - Go中同主机UDP包关联

在Go中,可以使用net.Addr接口(interface)发送UDP数据包以指定目标端点。一些特殊地址,例如:8080和0.0.0.0,使用本地环回接口(interface)发送数据包。收到时,仍然在同一台主机上,消息的net.Addr显示[::1]:8080作为来源。确定数据包是由同一主机发送和接收的最简单方法是什么?这是一个example在围棋Playground。它显示0.0.0.0:8080(ipv4)而不是[::1]:8080。 最佳答案 我最终使用了net.Dial("udp",addr)并显着关闭了连接。Dial还解