推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

C++Builder下三种UDP通信实现方法的比较

更新时间:2019-10-22 20:36:15 大小:23K 上传用户:xuzhen1查看TA发布的资源 标签:builderudp通信 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

C++Builder 下三种UDP通信实现方法的比较

出处

主要讨论一下数据的接受:

1.NMUDP控件

这个控件使用起来比较简单,设定监听端口,然后响应DataReceived事件就可以了,例如:

void__fastcall TMoniter:NMUDPDataReceived(TComponent*Sender int NumberBytes,AnsiString FromlP,int Port)

{

r用一个标志变量控制控件受信后是否执行需要的操作7

if(recvFlag)

intl;r用于接受数据的内存*V unsigned char rbuf[1024*9];r控件的ReadBufer方法,把接受到的数据存储到rbuf*y NMUDP->ReadBuffer(rbuf,sizeof(rbuf),l);

这个控件的优点是使用简单、效率比较高,但是只支持2K的缓冲,所以上面开辟的9K内存是多余的。2K的限制使我在项目中不得不放弃了这个控件。

2.ldUDPServer 控件

使用方法跟NMUDP差不多,响应UDPRead事件就可以了,例如:(注释参考1)void_fastcall TMoniter:ldUDPServer 1UDPRead(TObject*Sender


部分文件列表

文件名 大小
C++Builder下三种UDP通信实现方法的比较.pdf 23K

部分页面预览

(完整内容请下载后查看)
C++ Builder UDP 法的比 较  
出处  
的接受:  
1.NMUDP 控件  
件使用起 简单 设定监端口,然后 响DataReceived 事件就可以了,例如:  
void __fastcall TMoniter::NMUDPDataReceived(TComponent *Sender  
int NumberBytes, AnsiString FromIP , int Port)  
,
{
/* 控制控件受信后是否 需要的操作 */  
if (recvFlag)  
{
int rl;  
/* 用于接受 */  
unsigned char rbuf[1024 * 9];  
/* 控件的 ReadBuffer 方法,把接受到的 rbuf */  
NMUDP -> ReadBuffer(rbuf , sizeof(rbuf) , rl);  
/* 字符串 */  
rbuf[rl]=0;  
/* stream  
是事先定 文件指 针 */  
if (stream != NULL)  
{
/*  
自编doLog 把接收 据写日志文件 */  
doLog( false , rbuf ,rl  
;
}
}
}
件的 是使用 简效率比 高 , 是只支持 2K 缓冲 , 以上面 9K 是多  
余的。 2K 的限制使我在 中不得不放弃了 这件。  
2.IdUDPServer 控件  
使用方法跟 NMUDP 差不多, 响应 UDPRead 事件就可以了,例如:(注 释1 )  
void __fastcall TMoniter::IdUDPServer1UDPRead(TObject *Sender  
,

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载