Thema: Delphi probleme mit sockets

Einzelnen Beitrag anzeigen

Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#4

Re: probleme mit sockets

  Alt 2. Jun 2006, 16:32
so das ist der client
Delphi-Quellcode:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  memo1.Lines.Add('Verbunden mit : '+clientsocket1.Socket.RemoteHost+' (IP: '+clientsocket1.Socket.RemoteAddress+')');
  connected:=true;
  history('################ '+datetostr(now)+' Session gestartet ################');
  history('');
  send_version;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
var fehlerbuffer:integer;
begin
  fehlerbuffer:=errorcode;
  errorcode:=0;
  if fehlerbuffer<>10061 then memo1.Lines.Add('Es ist ein Fehler aufgetreten. [Code: '+inttostr(fehlerbuffer)+']')
    else memo1.Lines.Add('Server zur Zeit nicht erreichbar ...');


  if fehlerbuffer=10049 then
    memo1.Lines.Add('Bitte wiederholen Sie den Vorgang ...');
    
  clientsocket1.Active:=false;
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  memo1.Lines.Add('Verbindung zum Server wurde unterbrochen ...');
  connected:=false;
  form2.Visible:=false;
  form2.ListBox1.Clear;
  form2.ListBox2.Clear;
  form2.ListBox3.Clear;
  form2.ListBox4.Clear;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var nachr:string;
    senden:boolean;
begin
  nachr:=socket.ReceiveText;
  entschl(xchar,nachr);
  check_sp(nachr,senden);
  if senden=true then
  begin
    memo1.Lines.Add(nachr);
    status(nachr);
    history(nachr);
  end;
end;
und das der server
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var wtext:string;
begin
  send_text('['+thetime+' Server Message ] : Ein Client hat sich angemeldet ...',-1);
  memo1.Lines.Add('['+thetime+'] : Ein Client hat sich angemeldet ...');
  inc(clients);
  label3.Caption:=inttostr(clients);
  wtext:='Willkommen auf dem Loos - Teck KmsG Server Lite 0.4 Beta / '+inttostr(clients)+' Client(s) online ...';
  verschl(wtext,xchar,wtext);
  serversocket1.Socket.Connections[clients-1].SendText(wtext);
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  send_text('['+thetime+' Server Message ] : Ein Client hat sich abgemeldet ...',0);
  memo1.Lines.Add('['+thetime+'] : Ein Client hat sich abgemeldet ...');
  dec(clients);
  label3.Caption:=inttostr(clients);
end;

procedure TForm1.ServerSocket1ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
var errbuffer:integer;
begin
  errbuffer:=errorcode;
  errorcode:=0;
  memo1.Lines.Add('FEHLER : '+inttostr(errbuffer));
  stop:=true;
  panel1.Visible:=true;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var nachricht:string;
begin
  timer2.Enabled:=true;
  nachricht:=socket.ReceiveText;
  nachricht:='['+thetime+' '+copy(nachricht,2,length(nachricht));
  send_text(nachricht,0);
end;
  Mit Zitat antworten Zitat