شرح هذا الكود لو سمحتم
#1
السلام عليكم ورحمة الله وبركاته

ممكن شرح الكود التالي :


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); 

شكراً لكم

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد


الردود في هذا الموضوع
شرح هذا الكود لو سمحتم - بواسطة M_Mori2010 - 12-07-2012, 08:46 AM
شرح هذا الكود لو سمحتم - بواسطة M_Mori2010 - 18-07-2012, 09:25 AM
شرح هذا الكود لو سمحتم - بواسطة S.FATEH - 18-07-2012, 10:49 AM
شرح هذا الكود لو سمحتم - بواسطة cargem - 18-07-2012, 09:49 PM
شرح هذا الكود لو سمحتم - بواسطة onexite - 18-07-2012, 11:25 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم