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);
شكراً لكم
اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت
فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم

