Oppure

Loading
24/05/11 20:49
Track
Salve a tutti, lavoro ormai da mesi sulle connessioni, in particolare sulla connessione inversa, di recente sto creando un programma che permette alla persona che ha installato il server, di chattare, di farsi stampare scritte, e molte altre funzioni simpatiche come per esempio il supporto remoto per creare pagine html :),
questa applicazione usa 8 socket, il problema è che il server dopo un tot di tempo ha dei malfunzionamenti, e 1 o 2 porte, dallo stato porte risultano essere non attive, in più se si lascia il server acceso per troppo tempo, si vede questo errore,

img823.imageshack.us/img823/8441/…

Grazie anticipatamente..
p.s.:"il progetto non aggiornato che avevo, teneva 15 socket, ma il server sembra durare di più rispetto ad ora che ne ha 8"
/-----------/
Mi scuso per non aver messo ulteriori spiegazioni, allora il server dura all'incirca 35 minuti, poi inizia a dare problemi,
ecco cosa è successo:
12:19 = ho aperto il server
12:54 = il server ha iniziato a dare problemi, ma se non mi fossi connesso non avrebbe dato errori. L'ultima porta risulta essere non attiva quando prima lo era
13:00 = ha iniziato ad aprirmi per molte volte quell'errore mostrato sopra

screen dello stato porte (in giallo quella principale) :"imageshack.us/m/864/2281/…


questo codice che uso per non far dare errori al socket principale (Porta: 5000)

procedure TForm2.Timer2Timer(Sender: TObject);
begin
clientsocket2.Active:=false;
timer1.Enabled:=true;
timer2.Enabled:=false;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
clientsocket2.host:='127.0.0.1';
clientsocket2.Port:=5000;
clientsocket2.Active:=true;
clientsocket1.host:='127.0.0.1';
clientsocket1.Port:=5555;
clientsocket1.Active:=true;
timer1.Enabled:=false;
end;

procedure TForm2.ClientSocket2Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
timer2.Enabled:=true;
end;

procedure TForm2.ClientSocket2Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
errorcode:=0;
timer2.Enabled:=true;
end;

procedure TForm2.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
timer2.Enabled:=true;
end;

procedure TForm2.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
errorcode:=0;
timer2.Enabled:=true;
end;


però l'ho messo solo al socket principale e ad un altro, negli altri no.
p.s. (i vari socket si trovano anche in form diversi)
Ultima modifica effettuata da Track 25/05/11 11:25
aaa
24/05/11 21:36
Ultimo
sembra un ddos
If ok Then GOTO Avanza else GOTO Inizia

25/05/11 9:55
Goblin
mmm vediamo ... adesso chiedo alla mia sfera di cristallo ... appena ho una risposta ti faccio sapere :rofl:

Da quello che dici può essere di tutto, da un baco di programmazione, ad un virus del pc a... qualsiasi cosa. posta un pezzo di codice esplicativo!!!.
1) dove si verifica l'errore??
2) il server come gestisce i socket ??
3) i client come gestiscono i socket ??
4) hai altri programmi attivi nel server ??
5) troppo tempo ?? quanto ?? ore ? minuti?
6) se resta fermo succede ??
...
n) varie ed eventuali

come vedi mi sono fermato al punto 6, ma potevo benissimo andare avanti, se hai un errore devi documentarlo in modo che qualcuno ti possa aiutare, dalle informazioni che ci hai fornito si può tirare ad indovinare e non credo sia "bene" :nono: .
Aspettiamo altre info

G.
Ibis redibis non morieris in bello
25/05/11 13:05
givex8
Una mia ipotesi:

In OnDisconnect e in OnError del ClientSocket1, tu attivi il Timer2 che disattiva il ClientSocket2 e attiva in altro Timer che riattiva entrambi i socket...
Solo che se nel Timer2 non disattivi anche il ClientSocket1, quando poi il Timer1 va a reimpostare i parametri della connessione (Host, Porta), da errore perchè il ClientSocket1 è ancora attivo...

Prova così:

procedure TForm2.Timer2Timer(Sender: TObject);
begin
ClientSocket1.Active := False;
ClientSocket2.Active := False;
Timer1.Enabled := True;
Timer2.Enabled := False;
end;



Ciao
Ultima modifica effettuata da givex8 25/05/11 13:06
aaa