12-07-2012, 08:46 AM
السلام عليكم ورحمة الله وبركاته
ممكن شرح الكود التالي :
شكراً لكم
ممكن شرح الكود التالي :
PHP كود :
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var s,str,name,nei_rong:string;
i,n:integer;
all_name,ni_cheng:string;
newitem:TListItem;
begin
s:=Socket.ReceiveText; //½ÓÊÕ×Ö·û´®
n:=pos('@',s);
if n>0 then
begin
str:=copy(s,1,n-1);
if str='½»Ì¸' then //¸ñʽ:"½»Ì¸"@"toêdzÆ"@"ÄÚÈÝ"
begin
str:=copy(s,n+1,length(s)-n);
name:=copy(str,3,pos('@',str)-3); //½»Ì¸µÄ¶ÔÏóêdzÆ
nei_rong:=copy(str,pos('@',str)+1,length(str)-pos('@',str));//½»Ì¸µÄÄÚÈÝ
for i:=0 to ListView1.Items.count-1 do //¸ù¾Ý·¢ÑÔÕßIPÕÒ·¢ÑÔÕßêdzÆ
begin
if socket.RemoteAddress=ListView1.Items[i].subitems[0] then
begin
ni_cheng:= ListView1.Items[i].caption;
RichEdit1.Lines.add(ni_cheng+'¶Ô'+name+'˵'+nei_rong); end;
end;
for i:=0 to ListView1.Items.count-1 do //¸ù¾Ý½»Ì¸µÄ¶ÔÏóêdzÆÕÒ½»Ì¸µÄ¶ÔÏóIP
begin
if name=ListView1.Items[i].caption then
name:=ListView1.Items[i].subitems[0]; //subitems[0]´æ·ÅIP
end;
for i:=0 to ListView1.Items.count-1 do //ʵÏÖ˽ÁÄ
begin
if ServerSocket1.Socket.Connections[i].RemoteAddress=name then
ServerSocket1.Socket.Connections[i].SendText('½»Ì¸@'+ni_cheng+'@'+nei_rong);
end;
end;
if str='êdzÆ' then //êdzÆ@xmj
begin
all_name:='';
newitem:=ListView1.Items.insert(ListView1.Items.count);
newitem.caption:=copy(s,pos('@',s)+1,length(s)-pos('@',s));
newitem.SubItems.Add(socket.RemoteAddress);
newitem.SubItems.Add(socket.RemoteHost);
RichEdit1.Lines.add(newitem.caption+'½øÀ´ÁË');
for i:=0 to ListView1.Items.count-1 do
all_name:=all_name+ListView1.Items[i].Caption +'^'+ListView1.Items[i].subitems[0]+'@';
for i:=0 to ListView1.Items.count-1 do //¹ã²¥Ð½øÈëÓû§
begin
ServerSocket1.Socket.Connections[i].SendText('Ìí¼ÓÓû§@'+all_name);
end;
end;
end;
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket); //Óû§À뿪´¥·¢
var i:integer;ni_cheng:string;
begin
for i:=0 to ListView1.Items.count-1 do //¸ù¾Ý·¢ÑÔÕßIPÕÒ·¢ÑÔÕßêdzÆ
begin
if socket.RemoteAddress=ListView1.Items[i].subitems[0] then
begin
ni_cheng:= ListView1.Items[i].caption;
RichEdit1.Lines.add(ni_cheng+'À뿪ÁË');
end;
end;
for i:=0 to ListView1.items.count-1 do //ListView1ÖвéÕÒÀ뿪Óû§
begin
if Socket.RemoteAddress= ListView1.Items[i].subitems[0] then
Listview1.Items.Item[i].Delete();
end;
for i:=0 to ListView1.items.count-1 do //¹ã²¥À뿪Óû§
ServerSocket1.Socket.Connections[i].SendText('À뿪@'+ListView1.Items[i].caption);
شكراً لكم