百分,TNMUDP通讯问题,老大救命啊!

dinggosumsung 2006-07-05 04:54:16
两个问题:

1、TNMUDP通讯的时候,发送过来的数据超过1K多一些就检测不到了(使用TNMUDP的OnDataReceived事件接收)!发送数据时候超过1K就发送出错,是不是TNMUDP只能支持那么多?

2、可否提供一个用TIdUDPServer发送、接收数据的例子?BCB没有例子,我自己写了一段发送的程序,可是一直会出错:
代码如下:

TMemoryStream *p_stream = new TMemoryStream();
String s;
s = Trim(Edit1->Text);
int i_count = s.Length();
p_stream->Write(&s[1],i_count);
IdUDPServer1->SendBuffer("192.168.3.27", 8000, p_stream, i_count);

运行的时候一直提示:SOCKET ERROR #10049 Cannot assign requsted address

请各位老大点拨点拨!谢谢了!
...全文
426 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinggosumsung 2006-07-06
  • 打赏
  • 举报
回复
结贴,另开新帖提问!
jaffy 2006-07-05
  • 打赏
  • 举报
回复
MARK一个,明天来测试.
dinggosumsung 2006-07-05
  • 打赏
  • 举报
回复
to :constantine(飘遥的安吉儿)

这样看的话,不能接收到1K多一些的数据不是因为硬件的最大传输单元的问题了,那么根据
3996906(我只是建议,不提供最后的解决方法) 的说法 nmudp可以支持到2K,这样看也不应该不能接收到啊!还有其他什么可能造成不能接收到的原因吗?
lother 2006-07-05
  • 打赏
  • 举报
回复
TNMUDP就是有这样的问题,我也遇到了.并且搞得头大.
建议用indy ,好用
constantine 2006-07-05
  • 打赏
  • 举报
回复
不用你写代码,但是为了效率一般都要注意包的大小,还有就是nmudp有bug,所以太大了直接丢了


2,请参考delphi的代码就行了,indy的deme里面有这个控件的例子
dinggosumsung 2006-07-05
  • 打赏
  • 举报
回复
路由设备有个MTU的概念,最大传输单元。。。adsl一般是1492字节

这个问了下别人,说是ADSL会自动将超过的包分解为不超过最大传输单元的多个包进行发送,并且是硬件底层自动实现的,是这样吗?还是需要写代码的时候,程序中去将字符串切割?若是硬件底层会自动处理的话,那不能接收到应该和这个没关系吧?

老大再救下命啊!谢谢了!
dinggosumsung 2006-07-05
  • 打赏
  • 举报
回复
谢谢楼上的老大了

第二个问题为什么不说了啊,太低级了吗?小弟是个菜鸟啊,请各位老大不吝赐教啊!
3996906 2006-07-05
  • 打赏
  • 举报
回复
1、TNMUDP通讯的时候,发送过来的数据超过1K多一些就检测不到了(使用TNMUDP的OnDataReceived事件接收)!发送数据时候超过1K就发送出错,是不是TNMUDP只能支持那么多?

路由设备有个MTU的概念,最大传输单元。。。adsl一般是1492字节

nmudp自己定义的是不要超过2048字节。。不然直接给你丢了

2。我不回答了。。。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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