TNMUDP发送数据后接收数据第一次不成功,以后都成功,为什么?

scoredhigh 2013-09-25 09:34:03
TNMUDP发送数据后接收数据第一次不成功,以后都成功,为什么?

代码如下:
NMUDP1->LocalPort = 2000;
NMUDP1->RemotePort = 2000;
NMUDP1->ReportLevel = Nmudp::Status_Basic;


void __fastcall TSetUDPForm::btnReadClick(TObject *Sender)
{
NMUDP1->RemoteHost = edtIP->Text.Trim();

// 发送数据
NMUDP1->SendBuffer(UDPsend_data, len, len);
}

第一次点击按钮,发送数据后对方收到数据,然后发送数据回来,这个程序收不到。
如果在点击按钮,发送数据后对方收到数据,然后发送数据回来,这个程序收得到,而且以后都是正常的。
为什么?
而且通过对方程序的测试,除了第一次发送数据过去,检测到的端口为2824,其他时候都为3638,可是我明明设置的本地端口号为2000,为什么呢?
...全文
94 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
scoredhigh 2013-09-25
  • 打赏
  • 举报
回复
而且第一次发送数据,对方程序收到,检测到我的ip:0.0.0.0, 以后再发送数据,对方程序收到,检测到我的ip也正常了。 为什么这么奇怪,既然我第一次发送给对方的数据对方也能收到,但是检测的ip地址会有问题?
cankoo 2013-09-25
  • 打赏
  • 举报
回复
直接用SOCKET的吧,简单一点。
宝龙哥 2013-09-25
  • 打赏
  • 举报
回复
NM系列已被淘汰,新版本使用indy系列,使用NMUDP面临未来难以升级的局面
宝龙哥 2013-09-25
  • 打赏
  • 举报
回复
是不是没有启动监听?

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧