clientin readına kodları yazdım tamam fakat serverı açıyorum clientten bağlanıyorum servera hemen hata geliyor
Hata Nerden Kaynaklanıyor Bulamadım yardımcı olursanız sevinirim..
http://www.secretgroup.org/&/delphi/hata1.JPG
örnek olarak şunu yaptım ....
Kod: Tümünü seç
**************************** Server ***********************
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls, TLhelp32, ExtCtrls;
type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
Timer1: TTimer;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(
PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,
FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Port := 3000;
ServerSocket1.Active := true;
end;
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;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//form1.Hide;
//timer1.enabled:=false;
//
Label1.Caption := IntToStr(Serversocket1.Socket.ActiveConnections);
if ServerSocket1.Socket.ActiveConnections = 0 then Exit
else
ServerSocket1.Socket.SendText('1')
end;
end.
*************************Client*************************************
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp, ExtCtrls, SUIForm, SUIButton, SUIEdit, jpeg, wininet;
type
TForm1 = class(TForm)
Timer1: TTimer;
ClientSocket1: TClientSocket;
suiForm1: TsuiForm;
Edit3: TsuiEdit;
Button4: TsuiButton;
Button1: TsuiButton;
Button2: TsuiButton;
Button3: TsuiButton;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure suitempButton1Click(Sender: TObject);
procedure suitempButton2Click(Sender: TObject);
procedure suitempButton3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure suitempButton4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Delay(ms : longint);
var TheTime : LongInt;
begin
TheTime := GetTickCount + ms;
while GetTickCount < TheTime do
Application.ProcessMessages;
end;
procedure TForm1.suitempButton1Click(Sender: TObject);
begin
ClientSocket1.Address := edit3.Text;
ClientSocket1.Port := 3000;
ClientSocket1.Active := true ;
button4.Enabled:=True;
button1.Enabled:=False;
end;
procedure TForm1.suitempButton2Click(Sender: TObject);
begin
try
ClientSocket1.Socket.SendText('1')
except
end;
end;
procedure TForm1.suitempButton3Click(Sender: TObject);
begin
try
ClientSocket1.Socket.SendText('2')
except
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if ClientSocket1.Active= true then
begin
timer1.Enabled:=false ;
showmessage('Bağlantı Sağlandı');
Button1.Enabled:=False;
end
else
begin
timer1.Enabled:=false;
ShowMessage('Bağlantı Sağlanamadı');
end;
end;
procedure TForm1.suitempButton4Click(Sender: TObject);
begin
ClientSocket1.Active := false ;
button1.Enabled:=True;
button4.Enabled:=False;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
halt;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label3.Caption:='Bağlantı Sağlandı.';
button2.Enabled:=True;
button3.Enabled:=True;
end;
procedure TForm1.ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label3.Caption:='Bağlanıyor...';
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label3.Caption:='Bağlantı Kesildi.';
button2.Enabled:=False;
button3.Enabled:=False;
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Label3.Caption:='Hata Oluştu.';
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
s:string;
begin
// ClientSocket1.Socket.Read(1);
s := Socket.ReceiveText;
if s = '1' then
begin
ShowMessage('Komut Alındı 1');
//kodlar
exit;
end;
if s = '2' then
begin
ShowMessage('Komut Alındı 2');
Exit;
end;
end;
end.