ClientSocket

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

ClientSocket

Mesaj gönderen digital_agels »

yaw arkadaşlar biri tam açıklık getiremedi şuna Allah rızası için bir el atın şuna 34 Konuda Delphi 7 kitabı var Zeytin palanın clientsocket hakkında tek kelime yazmamış sağolsun , amacım şimdi clientten komut gönderim serverda çalıştırıyorum fakat ben server cliente cpu ve pc kaç saattir açıktır fonksiyonunu clientteki label4 ve label5 de göstermek istiyorum şuanda bu kod ile cpu kullanımı ve pc kaç saatir açık bilgileri label4 e geliyor fakat labelde biraz cpu bilgisi birazda pc kaç saattir açık onu gösteriyor yani ben cpu kullanımını başka labelde uptime özelliğini başka labelde göstermek istiyorum örneğin şurdaki gibi bir kod olabilirmi servera 1 mesajı geldiğinde şunu yap 2 geldğinde şunu yap bunu değişip cpu bilgisi geldiğinde şu labelde göster uptime geldiğinde şu labelde göster

bu alttaki kod gibi

Kod: Tümünü seç

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
  s:string;
  begin
   // ServerSocket1.Socket.Read(1);
s := Socket.ReceiveText;
if s = '1' then
begin
WinExec('C:\Program Files\Winamp\winamp.exe', SW_SHOWNORMAL);
//kodlar
exit;

end;

if s = '2' then
begin
Try KillTask('winamp.exe'); Except End;
Exit;
end;
end;



benim şuanda kullandığım kod bu aşşağıdaki kod bununla server cliente uptime ve cpu bilgisini label4 de göstertiyor fakat sadece label4 de gösterbildik oraya kadar gelebildim anca :oops: help me pls

Kod: Tümünü seç

*************server timerdeki kod********************

procedure TForm1.Timer1Timer(Sender: TObject);
var
m:TMEMORYSTATUS;
cpu:string;
begin
   cpu:=Label2.Caption;

   GlobalMemoryStatus (m);
  Label1.Caption  := IntToStr(Serversocket1.Socket.ActiveConnections);
 if ServerSocket1.Socket.ActiveConnections = 0 then Exit
 else
 begin
       ServerSocket1.Socket.Connections[0].SendText(uptime+' `Dir Server Açık');
  ServerSocket1.Socket.Connections[0].SendText(cpu);


end;
 end;
procedure TForm1.ServerSocket1ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
   errorcode:=0;
end;


*******************clientteki socket read kodu***************
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin

label4.Caption:=Socket.ReceiveText;

  end;
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

ServerSocket1.Socket.Connections[0].SendText(uptime+' `Dir Server Açık');
ServerSocket1.Socket.Connections[0].SendText(cpu);
Bu şekilde alt alta text yollayamazsın. Her seferde almak istediğin bilgiyi alacaksın.

Yani senin yazdığın kodda 2 bilgiyi birleştirip yollar.

Bence 2 bilgiyi ayrı ayrı sordurt cliente...
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Öncelikle birdaha aynı konu için yeni başlık açma daha önce yazdıklarına devam et
2. ise sanki bizler sadist insanlarız yada insanları böyle yalvartmaktan zevk alan insanlar gurubuymuşuz gibi nolur yardım edin türevi kelimeler kullanmayın. bu seninle beraber tüm bu tars mesaj atan arkadaşlara uyarı niteliğinde olsun.

Zaten ilk yazdığın kodda cevabını vermişsin, tavsiyem

Kod: Tümünü seç

ServerSocket1.Socket.Connections[0].SendText(uptime+' `Dir Server Açık');
ServerSocket1.Socket.Connections[0].SendText(cpu); 
yerine

Kod: Tümünü seç

ServerSocket1.Socket.Connections[0].SendText('KoMuT=Süre##'+uptime+' `Dir Server Açık');
  ServerSocket1.Socket.Connections[0].SendText('KoMuT=cpu##'+cpu); 

Kod: Tümünü seç


procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
  s:string;
  begin
   // ServerSocket1.Socket.Read(1);
s := Socket.ReceiveText;
if Pos('##',S)<1then Exit; //Komut Gelmemiş

if copy(S,1,12)= 'KoMuT=Süre##' then
begin
 ShowMessages('Süre Bilgisi Geldi'+#13#10+S);
//kodlar
exit;
end;
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Cevapla