indy中的idtcpserver的问题

loveshell loveshell 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我把客户端在线列表保存在一个listview里,点其中一个就可以向他发送消息。模仿demo里的chat修改,但是发送的时候老是出现访问违例。高手指点一下,代码如下:
TList *Clients=new TList;
class TSimpleClient: public TObject
{
public:
AnsiString DNS;
AnsiString Name;
AnsiString IP;
int LastLink;
Pointer Thread;
};
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::TCPServerConnect(TIdPeerThread *AThread)
{
TSimpleClient *Client=new TSimpleClient;
Client->DNS=AThread->Connection->LocalName;
Client->Name=AThread->Connection->LocalName;
Client->IP=AThread->Connection->Socket->Binding->PeerIP;
Client->Thread=AThread;
Client->LastLink=ListView1->Items->Count;
TListItem *item;
item=ListView1->Items->Add();
item->Caption=AThread->Connection->Socket->Binding->PeerIP;
item->SubItems->Add(AThread->Connection->LocalName);
AThread->Data=Client;
Clients->Add(Client);

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



void __fastcall TForm1::Button2Click(TObject *Sender)
{
TSimpleClient *Client;
Client=(TSimpleClient *)Clients->Items[ListView1->ItemIndex];
TIdPeerThread(Client->Thread).Connection->WriteLn("111");
}
//---------------------------------------------------------------------------

...全文
评论 12
收藏 已收藏
分享
返回顶部