关于UDP通讯的问题

Anthony76 2005-07-27 07:18:52
如何在线程中用TNMUDP(或者TUdpSocket)接收数据?请高手指点!!
...全文
298 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdstarnet 2005-08-21
  • 打赏
  • 举报
回复
星品网(http://www.cdstar.net)1000多款最新软件游戏和影视光盘促销,每张原装光盘4元,24H送货上门,进来看看!
hawkzone 2005-08-09
  • 打赏
  • 举报
回复
看我的indy程序 blog.csdn.net/hawkzone/
raystone 2005-07-30
  • 打赏
  • 举报
回复
如果你只是要实现简单的功能,用TNMUDP就足够了
?
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMemoryStream *MyStream = new TMemoryStream();
int I;
AnsiString C;
C = Edit1->Text;
NMUDP1->RemoteHost = "127.0.0.1";
NMUDP1->ReportLevel = Status_Basic;

NMUDP1->RemotePort = 6677;
I = C.Length();
MyStream->Write(&C[1], I);
NMUDP1->SendStream(MyStream);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::NMUDP1DataSend(TObject *Sender)
{
ShowMessage("send");
}
//---------------------------------------------------------------------------


void __fastcall TForm1::NMUDP2DataReceived(TComponent *Sender,
int NumberBytes, AnsiString FromIP, int Port)
{ /*
AnsiString C;
TMemoryStream *Stream = new TMemoryStream();
NMUDP2->ReadStream(Stream);
C.SetLength(NumberBytes);
Stream->Read(&C[1], NumberBytes);
Memo1->Lines->Add(C+": received "+IntToStr(NumberBytes)+" bytes from "+FromIP+" on port "+IntToStr(Port));
*/

}
//---------------------------------------------------------------------------


void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
int NumberBytes, AnsiString FromIP, int Port)
{
AnsiString C;
TMemoryStream *Stream = new TMemoryStream();
NMUDP1->ReadStream(Stream);
C.SetLength(NumberBytes);
Stream->Read(&C[1], NumberBytes);
Memo1->Lines->Add(C+": received "+IntToStr(NumberBytes)+" bytes from "+FromIP+" on port "+IntToStr(Port));

}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
NMUDP1->LocalPort=6677;
}
//---------------------------------------------------------------------------



若要是实现复杂的功能,建议使用Socket进行
constantine 2005-07-30
  • 打赏
  • 举报
回复
用这个不如用indy的
Anthony76 2005-07-29
  • 打赏
  • 举报
回复
哪里有sample?
wangxiangsjz 2005-07-29
  • 打赏
  • 举报
回复
看sample

1,317

社区成员

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

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