完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我似乎有问题的和谐宣布的特点。我正在使用2.04,但是我刚刚检查过,并且TCPIPPSAcCE.C文件与版本2.05.01相同。所发生的是,第一个通知(由DHCP租约触发)被发送到正确的目的端口(30303),但此后的任何一个(由调用TCPIPPNaveCaseMasaGeReSuffe()触发)被发送到目标端口0。“道路石膏”被设置。我也试过了,但是我至少得到了这个选项集的第一个包。我没有看到任何其他的东西。它也没有收到任何东西,我已经设置断点,但他们永远不会到达那里,使用最新的发现工具(V2.6)发送发现设备。我可以看到发现工具发出“发现:谁在那里?”但什么也没有收到。在我的手机上使用一个UDP工具,我可以看到发现工具包在网络上被广播,所以它被确定出去。然后,初始包和包的WiReHARK捕获显示目的端口0。
以上来自于百度翻译 以下为原文 Hi, I seem to be having issues with the Announce feature of HARMony. I'm using 2.04, but I just checked and the tcpip_accounce.c file is the same as in version 2.05.01. What's happening is that the first announce sent (triggered by DHCP lease) is sent to the correct destination port (30303), but any after that (triggered by calling TCPIP_ANNOUNCE_MessageRequest()) are sent to destination port 0. I have the default options in Harmony config, except "Network Direct Broadcast" is set. I have tried it off as well, but I at least get the first packet with this option set. I don't see anything otherwise. It also doesn't appear to be receiving anything, I've put breakpoints after if ( !TCPIP_UDP_GetIsReady( s ) ) { return; But they never get there, using the latest Discovery tool (v2.6) to send Discover Devices. I can see the Discovery tool sending out "Discovery: Who is out there?" but nothing is received. Using a UDP tool on my phone I can see the Discovery tool packet being broadcast on the network, so it is definitely going out. Wireshark capture of initial packet and packets thereafter show destination port 0. |
|
相关推荐
4个回答
|
|
我似乎已经通过在TCPIpIa AuouCE中添加以下内容来解决这两个问题:C:TCPIpU.UppReleTeXBIN(AnSkt,IpAddiRSsSype Type IPv4,TCPIpIOnEngEclipse端口,0);在第513行上,BeFoeTcPippuUdpRayayPoT(ANSKT,OutDATA,ANDCTP.MSGLEN);它现在也正确地接收和应答数据包,但是之后,我强制调用一个通知消息,用CalpTcTCPIPJavaSeMeAgErrEdSuffE()来进行,那么,不知何故远程绑定丢失了?为什么这也影响到港口30303的接待?
以上来自于百度翻译 以下为原文 I seem to have been able to fix both issues by adding the following in tcpip_annouce.c: TCPIP_UDP_RemoteBind( annSkt, IP_ADDRESS_TYPE_IPV4, TCPIP_ANNOUNCE_PORT, 0 ); On line 513, just before TCPIP_UDP_ArrayPut( annSkt, outData, annDcpt.msgLen ); TCPIP_UDP_SocketNetSet( annSkt, pNetIf ); ifAdd.Val = _TCPIPStackNetAddress( pNetIf ); TCPIP_UDP_SourceIPAddressSet( annSkt, IP_ADDRESS_TYPE_IPV4, ( IP_MULTI_ADDRESS* ) & ifAdd ); TCPIP_UDP_RemoteBind( annSkt, IP_ADDRESS_TYPE_IPV4, TCPIP_ANNOUNCE_PORT, 0 ); // ADDED CODE TCPIP_UDP_ArrayPut( annSkt, outData, annDcpt.msgLen ); It now also receives packets properly and replies, BUT only after I force an announce message to go out by calling TCPIP_ANNOUNCE_MessageRequest(). So, somehow the remote binding is lost? Why does this also effect reception on port 30303? |
|
|
|
好的,最后更新。所有这些似乎都在工作,我必须添加函数来重新绑定远程和服务器绑定。我现在在TCPIPSIONEXCEL*SENDIF函数的末尾这样做,类似于521:我仍然想知道为什么会发生这样的事情,以及为什么没有人提到它。我在做些什么来引起这个问题吗?我不特别使用UDP在任何和谐函数之外使用的自定义函数。
以上来自于百度翻译 以下为原文 Ok, final update. All seems to be working now, I had to add functions to rebind both remote and the server bind. I'm now doing this at the end of the TCPIP_ANNOUNCE_SendIf function, on like ~521: TCPIP_UDP_RemoteBind( annSkt, IP_ADDRESS_TYPE_IPV4, TCPIP_ANNOUNCE_PORT, 0 ); TCPIP_UDP_Bind( annSkt, IP_ADDRESS_TYPE_IPV4, TCPIP_ANNOUNCE_PORT, 0 ); I would still love to know why this is happening and why there's noone else mentioning it. Am I doing something to cause this issue? I don't specifically use UDP in any custom functions outside of what Harmony uses it for. |
|
|
|
HI LaveNT,不需要另一轮绑定/远程绑定,因为这是套接字打开的方式,而且我看不到任何改变/影响目的端口的操作。但是我必须做一些测试来了解正在发生的事情,看看我是否能复制您所看到的行为。NK你报告这一点,我会调查它,让你知道。
以上来自于百度翻译 以下为原文 Hi RowanT, Another round of Bind/RemoteBind shouldn't be needed since this is the way the socket was opened, and I don't see any operation that changes/affects the destination port. But I'll have to make some tests to understand what's going on and see if I can replicate the behavior that you see. Thank you for reporting this, I'll look into it and let you know. |
|
|
|
我已经创建了一个简单的命令,从控制台调用TecCPIPJavaCeMeAgAgErrEdSuffE()。我已经反复使用了有限的和网络定向的广播。我总是看到消息在端口30303上运行,应该是这样。在PC端运行发现器JAR对我来说就像WEL一样。L和董事会反应良好。你有没有特殊的设置,有什么想法可能会引发不同的问题?
以上来自于百度翻译 以下为原文 I've created a simple command that calls the TCPIP_ANNOUNCE_MessageRequest() from the console. I've used it repeatedly with both limited and network directed broadcasts. I always see the messages going out on port 30303, as they should. Running the discoverer jar on the PC side is working for me as well and the board responds properly. Do you have a special setup, any idea what might be different that could trigger the issue? |
|
|
|
只有小组成员才能发言,加入小组>>
5184 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3179 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2230 浏览 5 评论
742浏览 1评论
629浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
512浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
640浏览 0评论
538浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 01:45 , Processed in 1.286452 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号