Re: [twsocket] don`t connect simply client to simply server
Hello Francois, Wednesday, November 11, 2009, 4:02:15 PM, you wrote: > Hello Alexey, > Your code has avery common flaw: there is no message pump allowing events to > be processed. Look at one of the console demo to see how to build a console > mode program with a message pump. tnx. it`s working :) -- Best regards, Alexey Voytsehovichmailto:iron...@gmail.com -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] don`t connect simply client to simply server
Hello Alexey, Your code has avery common flaw: there is no message pump allowing events to be processed. Look at one of the console demo to see how to build a console mode program with a message pump. btw: Do not use OnStateChange event for anything else than displaying informations. Use the other events such as OnSessionConnected and similar. -- francois.pie...@overbyte.be The author of the freeware multi-tier middleware MidWare The author of the freeware Internet Component Suite (ICS) http://www.overbyte.be - Original Message - From: "Alexey Voytsehovich" To: Sent: Wednesday, November 11, 2009 1:51 PM Subject: [twsocket] don`t connect simply client to simply server Hi. Help please. This code --server-- program serverdelphi; {$APPTYPE CONSOLE} uses sysutils, dateutils, OverbyteIcsWSockBuf, OverbyteIcsWSocket, OverbyteIcsWSocketS; type { TWorkClass } TWorkClass = class public procedure StateChange(Sender: TObject; OldState, NewState : TSocketState); procedure SslWSocketServer1ClientConnect(Sender: TObject; Client: TWSocketClient; Error: Word); procedure SessionConnect(Sender: TObject; ErrCode: Word); end; var socket: TWSocketServer; WorkClass: TWorkClass; dt: tdatetime; { TWorkClass } procedure TWorkClass.StateChange(Sender: TObject; OldState, NewState: TSocketState); begin write(' From ' ); case OldState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: write('wsConnected'); wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; write (' To '); case NewState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: begin write('wsConnected'); try socket.SendLine('test'); except on E:Exception do writeln('Connect E.Message=' + E.Message); end; end; wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; writeln; end; procedure TWorkClass.SessionConnect(Sender: TObject; ErrCode: Word); begin Writeln('session connect'); end; procedure TWorkClass.SslWSocketServer1ClientConnect(Sender: TObject; Client: TWSocketClient; Error: Word); begin writeln('connect'); end; begin WorkClass := TWorkClass.Create; socket := TWSocketServer.Create(nil); socket.OnClientConnect := WorkClass.SslWSocketServer1ClientConnect; socket.OnSessionConnected := WorkClass.SessionConnect; socket.OnChangeState := WorkClass.StateChange; socket.Port:= '2'; socket.Addr:= '127.0.0.1'; socket.Listen; dt := Now; repeat sleep(1000); until MinutesBetween(Now, dt) > 1; WorkClass.Free; socket.free; end. --client-- program clientdelphi; {$APPTYPE CONSOLE} uses sysutils, dateutils, OverbyteIcsWSockBuf, OverbyteIcsWSocket, OverbyteIcsWSocketS; type { TWorkClass } TWorkClass = class public procedure StateChange(Sender: TObject; OldState, NewState : TSocketState); procedure CliSocketSessionConnected(Sender: TObject; ErrCode: Word); end; var socket: TWSocket; WorkClass: TWorkClass; dt: tdatetime; { TWorkClass } procedure TWorkClass.StateChange(Sender: TObject; OldState, NewState: TSocketState); begin write(' From ' ); case OldState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: write('wsConnected'); wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; write (' To '); case NewState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: begin write('wsConnected'); try socket.SendLine('test'); except on E:Exception do writeln('Connect E.Message=' + E.Message); end; end; wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; writeln; end; procedure TWorkClass.CliSocketSessionConnected(Sender: TObject; ErrCode: Word); begin writeln('CliSocketSessionConnected'); end; begin WorkClass := TWorkClass.Create; socket := TWSocket.Create(nil); socket.OnChangeState := WorkClass.StateChange; socket.OnSessionConnected := WorkClass.CliSocketSessionConnected; socket.Port:= '2'; so
[twsocket] don`t connect simply client to simply server
Hi. Help please. This code --server-- program serverdelphi; {$APPTYPE CONSOLE} uses sysutils, dateutils, OverbyteIcsWSockBuf, OverbyteIcsWSocket, OverbyteIcsWSocketS; type { TWorkClass } TWorkClass = class public procedure StateChange(Sender: TObject; OldState, NewState : TSocketState); procedure SslWSocketServer1ClientConnect(Sender: TObject; Client: TWSocketClient; Error: Word); procedure SessionConnect(Sender: TObject; ErrCode: Word); end; var socket: TWSocketServer; WorkClass: TWorkClass; dt: tdatetime; { TWorkClass } procedure TWorkClass.StateChange(Sender: TObject; OldState, NewState: TSocketState); begin write(' From ' ); case OldState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: write('wsConnected'); wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; write (' To '); case NewState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: begin write('wsConnected'); try socket.SendLine('test'); except on E:Exception do writeln('Connect E.Message=' + E.Message); end; end; wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; writeln; end; procedure TWorkClass.SessionConnect(Sender: TObject; ErrCode: Word); begin Writeln('session connect'); end; procedure TWorkClass.SslWSocketServer1ClientConnect(Sender: TObject; Client: TWSocketClient; Error: Word); begin writeln('connect'); end; begin WorkClass := TWorkClass.Create; socket := TWSocketServer.Create(nil); socket.OnClientConnect := WorkClass.SslWSocketServer1ClientConnect; socket.OnSessionConnected := WorkClass.SessionConnect; socket.OnChangeState := WorkClass.StateChange; socket.Port:= '2'; socket.Addr:= '127.0.0.1'; socket.Listen; dt := Now; repeat sleep(1000); until MinutesBetween(Now, dt) > 1; WorkClass.Free; socket.free; end. --client-- program clientdelphi; {$APPTYPE CONSOLE} uses sysutils, dateutils, OverbyteIcsWSockBuf, OverbyteIcsWSocket, OverbyteIcsWSocketS; type { TWorkClass } TWorkClass = class public procedure StateChange(Sender: TObject; OldState, NewState : TSocketState); procedure CliSocketSessionConnected(Sender: TObject; ErrCode: Word); end; var socket: TWSocket; WorkClass: TWorkClass; dt: tdatetime; { TWorkClass } procedure TWorkClass.StateChange(Sender: TObject; OldState, NewState: TSocketState); begin write(' From ' ); case OldState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: write('wsConnected'); wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; write (' To '); case NewState of wsInvalidState: write('wsInvalidState'); wsOpened: write('wsOpened'); wsBound: write('wsBound'); wsConnecting: write('wsConnecting'); wsSocksConnected: write('wsSocksConnected'); wsConnected: begin write('wsConnected'); try socket.SendLine('test'); except on E:Exception do writeln('Connect E.Message=' + E.Message); end; end; wsAccepting: write('wsAccepting'); wsListening: write('wsListening'); wsClosed: write('wsClosed'); end; writeln; end; procedure TWorkClass.CliSocketSessionConnected(Sender: TObject; ErrCode: Word); begin writeln('CliSocketSessionConnected'); end; begin WorkClass := TWorkClass.Create; socket := TWSocket.Create(nil); socket.OnChangeState := WorkClass.StateChange; socket.OnSessionConnected := WorkClass.CliSocketSessionConnected; socket.Port:= '2'; socket.Addr:= '127.0.0.1'; try socket.Connect; except on E:Exception do writeln('Connect E.Message=' + E.Message); end; dt := now; repeat sleep(1000); until (MinutesBetween(Now, dt) > 1); WorkClass.Free; socket.free; end. -- don`t connect between. i view this text --server-- From wsClosed To wsBound From wsBound To wsListening --client-- From wsClosed To wsOpened From wsOpened To wsConnecting its all. Help please -- Best regards, Alexey Voytsehovich mailto:iron...@gmail.com -- To unsubscribe or change you