用IdTcp元件寫chat

时间:2009-03-15 02:52:39
【文件属性】:
文件名称:用IdTcp元件寫chat
文件大小:15KB
文件格式:ZIP
更新时间:2009-03-15 02:52:39
控件 源码 网络通信类 资源 1. Client端與Server端都必須是實體IP或虛擬IP才行。不過在Indy的元件中,卻可以解決以上的問題,也就是只要你有對外網路,而TCPServer在實體ip,就可以像ICQ一樣,可以進行chat,這是clientsocket所無法提供的。不過,在Delphi 6的範例中,只能夠達到傳送資料,並沒有介紹有關於Chat的互動功能。看了Indy元件的事件解說發現:1. Server端可以輕易的使用OnExecute事件,來判定是否有從Client端送來的資料。2. Client端無法利用Event來判斷是否有從Server端送來的資料,本來作者以為可以使用onwork來判定,不過並沒有辦法。這當然也是筆者一直在考慮使用clientsocket或indy元件的原因。直到最近,筆者查詢相關文件後,發現可以利用Ttimer元件,配合Indy元件ReadlnTimeout的方式,來替代Event,方式如下:procedure TForm1.Timer1Timer(Sender: TObject);var s:string;begin s:=IdTCPClient1.ReadLn(‘‘,3); //表示當獨到為空字串時結束。 if s<>‘‘ then memo1.Lines.Add(s)end;
【文件预览】:
client
----client.dpr(186B)
----client.dof(1KB)
----client.~dpr(186B)
----Unit1.~dfm(2KB)
----Unit1.dfm(2KB)
----Unit1.ddp(51B)
----Unit1.pas(2KB)
----client.res(876B)
----Unit1.~ddp(51B)
----Unit1.~pas(2KB)
----Unit1.dcu(5KB)
----client.cfg(386B)
server
----server.dof(1KB)
----Unit1.~dfm(1KB)
----Unit1.dfm(1KB)
----server.dpr(186B)
----Unit1.ddp(51B)
----Unit1.pas(1KB)
----server.res(876B)
----Unit1.~ddp(51B)
----server.cfg(386B)
----Unit1.~pas(1KB)
----Unit1.dcu(5KB)

网友评论