有人能帮我写个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) codeprocedure TFormMain.IdTCPServerConnect(AThread: TIdPeerThread);beginLbLog.Items.Add('来自主机 '+ AThread.Connection.Socket.Binding.PeerIP+ ' 的连接请求已被接纳!');AThread.Connection.WriteLn('100: 欢迎连接到简单TCP服务器!');end;
但在c++builder 的indy10中却是这样.
C/C++ codevoid __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可以去查找一下