首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

有人能帮小弟我写个c++builder2010下indy TCP和UDP的例子吗

2012-02-13 
有人能帮我写个c++builder2010下indy TCP和UDP的例子吗?indy10 chat demo是Delphi的,看不太懂.最好是c++bu

有人能帮我写个c++builder2010下indy TCP和UDP的例子吗?
indy10 chat demo是Delphi的,看不太懂.

最好是c++builder2010的,因为indy版本不同,用法也不一样.

比如这个应该是6.0的

Delphi(Pascal) code
procedure TFormMain.IdTCPServerConnect(AThread: TIdPeerThread);beginLbLog.Items.Add('来自主机 '+ AThread.Connection.Socket.Binding.PeerIP+ ' 的连接请求已被接纳!');AThread.Connection.WriteLn('100: 欢迎连接到简单TCP服务器!');end;


但在c++builder 的indy10中却是这样.

C/C++ code
void __fastcall TForm1::idtcpsrvr1Connect(TIdContext *AContext)


TIdTCPServer 和 TIdTCPClient 
TIdUDPServer 和 TIdUDPClient

最简单的字符串收发送就可以.

 

[解决办法]
void __fastcall TForm1::idtcpsrvr1Execute(TIdContext *AContext)


这里面做循环,一直到对方结束

[解决办法]
实现字符串收发是很容易的
//2010下编译并测试成功 ,给分吧

//服务器
void __fastcall TForm2::IdTCPServer1Execute(TIdContext *AContext)
{

String str=AContext->Connection->IOHandler->ReadLn();
MessageBox(NULL,str.t_str(),"信息",MB_OK);//这里不要用ShowMessage
}
//---------------------------------------
//客户端
void __fastcall TForm2::Button2Click(TObject *Sender)
{
 
if( IdTCPClient1->Connected()==false)
{
IdTCPClient1->Port=5050;
IdTCPClient1->Host="127.0.0.1";
IdTCPClient1->Connect();
}
IdTCPClient1->IOHandler->WriteLn(Edit1->Text);
}
[解决办法]
用个循环不停的IdTCPClient1.ReadLn() 应该可以

[解决办法]
服务端建立监听,客户端去连接监听端口,然后按照你的协议发数据,先发简单的数据测试。在read中读取,然后比对发送和收到的数据。自己一步一步的座实验,这样你理解的会更深刻
[解决办法]
在我之前回复的一些帖子里 有这样的例子 lz可以去查找一下

热点排行